From: Philipp Reisner Date: Tue, 15 Mar 2011 17:40:27 +0000 (+0100) Subject: drbd: Moved CONN_DRY_RUN to the per connection (tconn) flags X-Git-Tag: firefly_0821_release~3680^2~1419^2~18^2~402 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8169e41b3e59ee74a31270804a1b5ccef9ae9fce;p=firefly-linux-kernel-4.4.55.git drbd: Moved CONN_DRY_RUN to the per connection (tconn) flags Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg --- diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h index 278e7acc7f32..d6e7e657e7a4 100644 --- a/drivers/block/drbd/drbd_int.h +++ b/drivers/block/drbd/drbd_int.h @@ -791,7 +791,6 @@ enum { RESYNC_AFTER_NEG, /* Resync after online grow after the attach&negotiate finished. */ RESIZE_PENDING, /* Size change detected locally, waiting for the response from * the peer, if it changed there as well. */ - CONN_DRY_RUN, /* Expect disconnect after resync handshake. */ NEW_CUR_UUID, /* Create new current UUID when thawing IO */ AL_SUSPENDED, /* Activity logging is currently suspended. */ AHEAD_TO_SYNC_SOURCE, /* Ahead -> SyncSource queued */ @@ -915,6 +914,7 @@ enum { * but worker thread is still handling the cleanup. * reconfiguring (nl_disk_conf, nl_net_conf) is dissalowed, * while this is set. */ + CONN_DRY_RUN, /* Expect disconnect after resync handshake. */ }; struct drbd_tconn { /* is a resource from the config file */ diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index ac2a25f6b256..4bac2f56ca2c 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c @@ -2800,7 +2800,7 @@ static enum drbd_conns drbd_sync_handshake(struct drbd_conf *mdev, enum drbd_rol } } - if (mdev->tconn->net_conf->dry_run || test_bit(CONN_DRY_RUN, &mdev->flags)) { + if (mdev->tconn->net_conf->dry_run || test_bit(CONN_DRY_RUN, &mdev->tconn->flags)) { if (hg == 0) dev_info(DEV, "dry-run connect: No resync, would become Connected immediately.\n"); else @@ -2869,10 +2869,10 @@ static int receive_protocol(struct drbd_conf *mdev, enum drbd_packet cmd, cf = be32_to_cpu(p->conn_flags); p_want_lose = cf & CF_WANT_LOSE; - clear_bit(CONN_DRY_RUN, &mdev->flags); + clear_bit(CONN_DRY_RUN, &mdev->tconn->flags); if (cf & CF_DRY_RUN) - set_bit(CONN_DRY_RUN, &mdev->flags); + set_bit(CONN_DRY_RUN, &mdev->tconn->flags); if (p_proto != mdev->tconn->net_conf->wire_protocol) { dev_err(DEV, "incompatible communication protocols\n"); @@ -3439,7 +3439,7 @@ static int receive_state(struct drbd_conf *mdev, enum drbd_packet cmd, peer_state.disk = D_DISKLESS; real_peer_disk = D_DISKLESS; } else { - if (test_and_clear_bit(CONN_DRY_RUN, &mdev->flags)) + if (test_and_clear_bit(CONN_DRY_RUN, &mdev->tconn->flags)) return false; D_ASSERT(os.conn == C_WF_REPORT_PARAMS); conn_request_state(mdev->tconn, NS(conn, C_DISCONNECTING), CS_HARD);