diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index 9a9d4fd264a9eada8f9a74f6042eea66f3b319ad..1599a1a6f1f70bfbaae1064a849eedfa19b3e48b 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c @@ -1051,7 +1051,7 @@ static int conn_connect(struct drbd_tconn *tconn) rcu_read_unlock(); rv = conn_request_state(tconn, NS(conn, C_WF_REPORT_PARAMS), CS_VERBOSE); - if (rv < SS_SUCCESS) { + if (rv < SS_SUCCESS || tconn->cstate != C_WF_REPORT_PARAMS) { clear_bit(STATE_SENT, &tconn->flags); return 0; }