drbd: Moved CONN_DRY_RUN to the per connection (tconn) flags
authorPhilipp Reisner <philipp.reisner@linbit.com>
Tue, 15 Mar 2011 17:40:27 +0000 (18:40 +0100)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Sat, 3 Nov 2012 23:16:27 +0000 (00:16 +0100)
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
drivers/block/drbd/drbd_int.h
drivers/block/drbd/drbd_receiver.c

index 278e7acc7f329a945649f576eedf4104634e023c..d6e7e657e7a42c5949a0e63af33629febeb24bc0 100644 (file)
@@ -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 */
index ac2a25f6b2566f85b4f17eee600a6aba4ff1c786..4bac2f56ca2cfb37d52678125ffb6c06a36c50cf 100644 (file)
@@ -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);