From 402cced0885b23d887b855d463ae452b42cc2243 Mon Sep 17 00:00:00 2001 From: Philipp Reisner Date: Thu, 22 Jul 2010 15:27:27 +0200 Subject: [PATCH] --- yaml --- r: 213120 b: refs/heads/master c: d207450cf2731c6a2afa8c78fb31c7206cd35eba h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/block/drbd/drbd_worker.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index d0c9ace15dcc..495e0ff56435 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 778f271dfe7a7173c0bae2d6cde8d9bd1533e668 +refs/heads/master: d207450cf2731c6a2afa8c78fb31c7206cd35eba diff --git a/trunk/drivers/block/drbd/drbd_worker.c b/trunk/drivers/block/drbd/drbd_worker.c index fd3e1e9561cb..30b8e466a224 100644 --- a/trunk/drivers/block/drbd/drbd_worker.c +++ b/trunk/drivers/block/drbd/drbd_worker.c @@ -512,7 +512,7 @@ int w_make_resync_request(struct drbd_conf *mdev, sector_t sector; const sector_t capacity = drbd_get_capacity(mdev->this_bdev); int max_segment_size; - int number, i, size, pe, mx; + int number, i, rollback_i, size, pe, mx; int align, queued, sndbuf; if (unlikely(cancel)) @@ -613,6 +613,7 @@ int w_make_resync_request(struct drbd_conf *mdev, * be prepared for all stripe sizes of software RAIDs. */ align = 1; + rollback_i = i; for (;;) { if (size + BM_BLOCK_SIZE > max_segment_size) break; @@ -654,6 +655,7 @@ int w_make_resync_request(struct drbd_conf *mdev, case 2: /* Allocation failed */ drbd_rs_complete_io(mdev, sector); mdev->bm_resync_fo = BM_SECT_TO_BIT(sector); + i = rollback_i; goto requeue; /* case 1: everything ok */ }