drbd: resync: fix too large bursts for very slow rates
authorLars Ellenberg <lars.ellenberg@linbit.com>
Mon, 28 Apr 2014 16:43:17 +0000 (18:43 +0200)
committerJens Axboe <axboe@fb.com>
Wed, 30 Apr 2014 19:46:54 +0000 (13:46 -0600)
While merging adjacent dirty blocks into resync requests,
the resync rate throttle was disregarded.
For very low resync rates, the effective rate may have exceeded
the intended rate by a larger margin.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/block/drbd/drbd_worker.c

index 2c4ce42..dcd95a6 100644 (file)
@@ -647,7 +647,7 @@ next_sector:
                 */
                align = 1;
                rollback_i = i;
-               for (;;) {
+               while (i < number) {
                        if (size + BM_BLOCK_SIZE > max_bio_size)
                                break;