diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index 80cfd3020711874c8f1afca7a823b4c9a0b7e245..8d5ed6f5241634401ff002bb30fdfa44b6fc4857 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c @@ -974,7 +974,7 @@ int drbd_send_state(struct drbd_conf *mdev) { struct socket *sock; struct p_state p; - int ok = 0; + int err = -EIO; mutex_lock(&mdev->tconn->data.mutex); @@ -982,11 +982,11 @@ int drbd_send_state(struct drbd_conf *mdev) sock = mdev->tconn->data.socket; if (likely(sock != NULL)) - ok = !_drbd_send_cmd(mdev, sock, P_STATE, &p.head, sizeof(p), 0); + err = _drbd_send_cmd(mdev, sock, P_STATE, &p.head, sizeof(p), 0); mutex_unlock(&mdev->tconn->data.mutex); - return ok; + return err; } int _conn_send_state_req(struct drbd_tconn *tconn, int vnr, enum drbd_packet cmd, diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index c35be86b121ea432a1abaf72a77d112657a39a6a..fb907377402d4f769254256d3fa22c57d5185015 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c @@ -766,7 +766,7 @@ int drbd_connected(int vnr, void *p, void *data) ok &= !drbd_send_sync_param(mdev); ok &= drbd_send_sizes(mdev, 0, 0); ok &= drbd_send_uuids(mdev); - ok &= drbd_send_state(mdev); + ok &= !drbd_send_state(mdev); clear_bit(USE_DEGR_WFC_T, &mdev->flags); clear_bit(RESIZE_PENDING, &mdev->flags); diff --git a/drivers/block/drbd/drbd_state.c b/drivers/block/drbd/drbd_state.c index cb08e011c2885d65b21f911f947666dc28a994e0..29372dbad2782764de5a270a9c2edf78e1c9daea 100644 --- a/drivers/block/drbd/drbd_state.c +++ b/drivers/block/drbd/drbd_state.c @@ -1188,7 +1188,7 @@ static void after_state_ch(struct drbd_conf *mdev, union drbd_state os, "ASSERT FAILED: disk is %s during detach\n", drbd_disk_str(mdev->state.disk)); - if (drbd_send_state(mdev)) + if (!drbd_send_state(mdev)) dev_warn(DEV, "Notified peer that I am detaching my disk\n"); else dev_err(DEV, "Sending state for detaching disk failed\n"); @@ -1220,7 +1220,7 @@ static void after_state_ch(struct drbd_conf *mdev, union drbd_state os, mdev->rs_failed = 0; atomic_set(&mdev->rs_pending_cnt, 0); - if (drbd_send_state(mdev)) + if (!drbd_send_state(mdev)) dev_warn(DEV, "Notified peer that I'm now diskless.\n"); /* corresponding get_ldev in __drbd_set_state * this may finally trigger drbd_ldev_destroy. */