aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_main.c
diff options
context:
space:
mode:
authorPhilipp Reisner <philipp.reisner@linbit.com>2010-11-22 14:18:47 +0100
committerPhilipp Reisner <philipp.reisner@linbit.com>2011-03-10 11:35:07 +0100
commit1fc80cf37810d6b00cac27a219b8ecab2010adac (patch)
tree9d844dcb200a49f3bb94f66238278e4827537d99 /drivers/block/drbd/drbd_main.c
parentdrbd: Starting with protocol 96 we can allow app-IO while receiving the bitmap (diff)
downloadlinux-dev-1fc80cf37810d6b00cac27a219b8ecab2010adac.tar.xz
linux-dev-1fc80cf37810d6b00cac27a219b8ecab2010adac.zip
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>
Diffstat (limited to 'drivers/block/drbd/drbd_main.c')
-rw-r--r--drivers/block/drbd/drbd_main.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 14afbd4e53a5..8b8a38dc6492 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/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;
}