drbd: Becoming sync target may not happen out of < C_WF_REPORT_PARAMS
authorPhilipp Reisner <philipp.reisner@linbit.com>
Mon, 22 Nov 2010 13:18:47 +0000 (14:18 +0100)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 10 Mar 2011 10:35:07 +0000 (11:35 +0100)
This patch is acutally a necessary addendum to the patch
"fix for spurious full sync (becoming sync target looked like invalidate)"

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
drivers/block/drbd/drbd_main.c

index 14afbd4..8b8a38d 100644 (file)
@@ -800,6 +800,10 @@ static int is_valid_state_transition(struct drbd_conf *mdev,
            os.conn < C_CONNECTED)
                rv = SS_NEED_CONNECTION;
 
+       if ((ns.conn == C_SYNC_TARGET || ns.conn == C_SYNC_SOURCE)
+           && os.conn < C_WF_REPORT_PARAMS)
+               rv = SS_NEED_CONNECTION; /* No NetworkFailure -> SyncTarget etc... */
+
        return rv;
 }