From 922ae8e882ec93be89adb1974e2203fe8b21983c Mon Sep 17 00:00:00 2001 From: Philipp Reisner Date: Fri, 29 Oct 2010 12:44:20 +0200 Subject: [PATCH] --- yaml --- r: 242825 b: refs/heads/master c: 59817f4fab6a165ba83ce399464ba38432db8233 h: refs/heads/master i: 242823: b22432cd9bc2d7a3b8ea83d568ec64b552d281a3 v: v3 --- [refs] | 2 +- trunk/drivers/block/drbd/drbd_worker.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index e86a43f5f556..519760420d2d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c4752ef1284519c3baa1c3b19df34a80b4905245 +refs/heads/master: 59817f4fab6a165ba83ce399464ba38432db8233 diff --git a/trunk/drivers/block/drbd/drbd_worker.c b/trunk/drivers/block/drbd/drbd_worker.c index c9e7cb7c788a..982d68432a0f 100644 --- a/trunk/drivers/block/drbd/drbd_worker.c +++ b/trunk/drivers/block/drbd/drbd_worker.c @@ -1485,8 +1485,13 @@ void drbd_start_resync(struct drbd_conf *mdev, enum drbd_conns side) return; } - /* In case a previous resync run was aborted by an IO error/detach on the peer. */ - drbd_rs_cancel_all(mdev); + if (mdev->state.conn < C_AHEAD) { + /* In case a previous resync run was aborted by an IO error/detach on the peer. */ + drbd_rs_cancel_all(mdev); + /* This should be done when we abort the resync. We definitely do not + want to have this for connections going back and forth between + Ahead/Behind and SyncSource/SyncTarget */ + } if (side == C_SYNC_TARGET) { /* Since application IO was locked out during C_WF_BITMAP_T and