Browse Source

drbd: Becoming sync target may not happen out of < C_WF_REPORT_PARAMS

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>
Philipp Reisner 14 years ago
parent
commit
1fc80cf378
1 changed files with 4 additions and 0 deletions
  1. 4 0
      drivers/block/drbd/drbd_main.c

+ 4 - 0
drivers/block/drbd/drbd_main.c

@@ -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;
 }