diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
index bc265f3..daa4a74 100644
--- a/drivers/block/drbd/drbd_int.h
+++ b/drivers/block/drbd/drbd_int.h
@@ -1115,24 +1115,15 @@
 	return (struct drbd_conf *)idr_find(&tconn->volumes, vnr);
 }
 
-/* returns 1 if it was successful,
- * returns 0 if there was no data socket.
- * so wherever you are going to use the data.socket, e.g. do
- * if (!drbd_get_data_sock(mdev->tconn))
- *	return 0;
- *	CODE();
- * drbd_get_data_sock(mdev->tconn);
- */
 static inline int drbd_get_data_sock(struct drbd_tconn *tconn)
 {
 	mutex_lock(&tconn->data.mutex);
-	/* drbd_disconnect() could have called drbd_free_sock()
-	 * while we were waiting in down()... */
-	if (unlikely(tconn->data.socket == NULL)) {
+	if (!tconn->data.socket) {
+		/* Disconnected.  */
 		mutex_unlock(&tconn->data.mutex);
-		return 0;
+		return -EIO;
 	}
-	return 1;
+	return 0;
 }
 
 static inline void drbd_put_data_sock(struct drbd_tconn *tconn)
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 52378cc..d4546d0 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -773,7 +773,7 @@
 
 	prepare_header80(&h, cmd, size);
 
-	if (!drbd_get_data_sock(tconn))
+	if (drbd_get_data_sock(tconn))
 		return 0;
 
 	ok = (sizeof(h) ==
@@ -1245,7 +1245,7 @@
 {
 	int err;
 
-	if (!drbd_get_data_sock(mdev->tconn))
+	if (drbd_get_data_sock(mdev->tconn))
 		return -1;
 	err = !_drbd_send_bitmap(mdev);
 	drbd_put_data_sock(mdev->tconn);
@@ -1562,7 +1562,7 @@
 	void *dgb;
 	int dgs;
 
-	if (!drbd_get_data_sock(mdev->tconn))
+	if (drbd_get_data_sock(mdev->tconn))
 		return 0;
 
 	dgs = (mdev->tconn->agreed_pro_version >= 87 && mdev->tconn->integrity_w_tfm) ?
@@ -1652,7 +1652,7 @@
 	 * This one may be interrupted by DRBD_SIG and/or DRBD_SIGKILL
 	 * in response to admin command or module unload.
 	 */
-	if (!drbd_get_data_sock(mdev->tconn))
+	if (drbd_get_data_sock(mdev->tconn))
 		return 0;
 
 	ok = sizeof(p) == drbd_send(mdev->tconn, mdev->tconn->data.socket, &p, sizeof(p), dgs ? MSG_MORE : 0);
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
index 005876b..39e4915 100644
--- a/drivers/block/drbd/drbd_worker.c
+++ b/drivers/block/drbd/drbd_worker.c
@@ -1209,7 +1209,7 @@
 	if (cancel)
 		return 1;
 
-	if (!drbd_get_data_sock(mdev->tconn))
+	if (drbd_get_data_sock(mdev->tconn))
 		return 0;
 	p->barrier = b->br_number;
 	/* inc_ap_pending was done where this was queued.
