From f098674963787613a5e02107526c826a3645c57b Mon Sep 17 00:00:00 2001 From: Lars Ellenberg Date: Thu, 1 Apr 2010 15:13:19 +0200 Subject: [PATCH] --- yaml --- r: 196836 b: refs/heads/master c: e0f83012dc510b0be92ee2d59227a573a36777b8 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/block/drbd/drbd_main.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 2ca7b9c3c083..893e5ea1068c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e4f925e12ea5daaa9baf2dd5af9c4951721dae95 +refs/heads/master: e0f83012dc510b0be92ee2d59227a573a36777b8 diff --git a/trunk/drivers/block/drbd/drbd_main.c b/trunk/drivers/block/drbd/drbd_main.c index 8f84a9f58c99..b1ce5dc7c603 100644 --- a/trunk/drivers/block/drbd/drbd_main.c +++ b/trunk/drivers/block/drbd/drbd_main.c @@ -840,7 +840,12 @@ static union drbd_state sanitize_state(struct drbd_conf *mdev, union drbd_state break; case C_WF_BITMAP_S: case C_PAUSED_SYNC_S: - ns.pdsk = os.pdsk > D_OUTDATED ? D_OUTDATED : os.pdsk; + /* remap any consistent state to D_OUTDATED, + * but disallow "upgrade" of not even consistent states. + */ + ns.pdsk = + (D_DISKLESS < os.pdsk && os.pdsk < D_OUTDATED) + ? os.pdsk : D_OUTDATED; break; case C_SYNC_SOURCE: ns.pdsk = D_INCONSISTENT;