Commit 8169e41b authored by Philipp Reisner's avatar Philipp Reisner

drbd: Moved CONN_DRY_RUN to the per connection (tconn) flags

Signed-off-by: default avatarPhilipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: default avatarLars Ellenberg <lars.ellenberg@linbit.com>
parent 38fa9988
...@@ -791,7 +791,6 @@ enum { ...@@ -791,7 +791,6 @@ enum {
RESYNC_AFTER_NEG, /* Resync after online grow after the attach&negotiate finished. */ RESYNC_AFTER_NEG, /* Resync after online grow after the attach&negotiate finished. */
RESIZE_PENDING, /* Size change detected locally, waiting for the response from RESIZE_PENDING, /* Size change detected locally, waiting for the response from
* the peer, if it changed there as well. */ * 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 */ NEW_CUR_UUID, /* Create new current UUID when thawing IO */
AL_SUSPENDED, /* Activity logging is currently suspended. */ AL_SUSPENDED, /* Activity logging is currently suspended. */
AHEAD_TO_SYNC_SOURCE, /* Ahead -> SyncSource queued */ AHEAD_TO_SYNC_SOURCE, /* Ahead -> SyncSource queued */
...@@ -915,6 +914,7 @@ enum { ...@@ -915,6 +914,7 @@ enum {
* but worker thread is still handling the cleanup. * but worker thread is still handling the cleanup.
* reconfiguring (nl_disk_conf, nl_net_conf) is dissalowed, * reconfiguring (nl_disk_conf, nl_net_conf) is dissalowed,
* while this is set. */ * while this is set. */
CONN_DRY_RUN, /* Expect disconnect after resync handshake. */
}; };
struct drbd_tconn { /* is a resource from the config file */ struct drbd_tconn { /* is a resource from the config file */
......
...@@ -2800,7 +2800,7 @@ static enum drbd_conns drbd_sync_handshake(struct drbd_conf *mdev, enum drbd_rol ...@@ -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) if (hg == 0)
dev_info(DEV, "dry-run connect: No resync, would become Connected immediately.\n"); dev_info(DEV, "dry-run connect: No resync, would become Connected immediately.\n");
else else
...@@ -2869,10 +2869,10 @@ static int receive_protocol(struct drbd_conf *mdev, enum drbd_packet cmd, ...@@ -2869,10 +2869,10 @@ static int receive_protocol(struct drbd_conf *mdev, enum drbd_packet cmd,
cf = be32_to_cpu(p->conn_flags); cf = be32_to_cpu(p->conn_flags);
p_want_lose = cf & CF_WANT_LOSE; 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) 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) { if (p_proto != mdev->tconn->net_conf->wire_protocol) {
dev_err(DEV, "incompatible communication protocols\n"); dev_err(DEV, "incompatible communication protocols\n");
...@@ -3439,7 +3439,7 @@ static int receive_state(struct drbd_conf *mdev, enum drbd_packet cmd, ...@@ -3439,7 +3439,7 @@ static int receive_state(struct drbd_conf *mdev, enum drbd_packet cmd,
peer_state.disk = D_DISKLESS; peer_state.disk = D_DISKLESS;
real_peer_disk = D_DISKLESS; real_peer_disk = D_DISKLESS;
} else { } else {
if (test_and_clear_bit(CONN_DRY_RUN, &mdev->flags)) if (test_and_clear_bit(CONN_DRY_RUN, &mdev->tconn->flags))
return false; return false;
D_ASSERT(os.conn == C_WF_REPORT_PARAMS); D_ASSERT(os.conn == C_WF_REPORT_PARAMS);
conn_request_state(mdev->tconn, NS(conn, C_DISCONNECTING), CS_HARD); conn_request_state(mdev->tconn, NS(conn, C_DISCONNECTING), CS_HARD);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment