diff options
Diffstat (limited to 'drivers/block/drbd/drbd_worker.c')
-rw-r--r-- | drivers/block/drbd/drbd_worker.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c index 48452fe83603..53b74254b1c2 100644 --- a/drivers/block/drbd/drbd_worker.c +++ b/drivers/block/drbd/drbd_worker.c | |||
@@ -1481,13 +1481,19 @@ void drbd_start_resync(struct drbd_conf *mdev, enum drbd_conns side) | |||
1481 | r = SS_UNKNOWN_ERROR; | 1481 | r = SS_UNKNOWN_ERROR; |
1482 | 1482 | ||
1483 | if (r == SS_SUCCESS) { | 1483 | if (r == SS_SUCCESS) { |
1484 | mdev->rs_total = | 1484 | unsigned long tw = drbd_bm_total_weight(mdev); |
1485 | mdev->rs_mark_left = drbd_bm_total_weight(mdev); | 1485 | unsigned long now = jiffies; |
1486 | int i; | ||
1487 | |||
1486 | mdev->rs_failed = 0; | 1488 | mdev->rs_failed = 0; |
1487 | mdev->rs_paused = 0; | 1489 | mdev->rs_paused = 0; |
1488 | mdev->rs_start = | ||
1489 | mdev->rs_mark_time = jiffies; | ||
1490 | mdev->rs_same_csum = 0; | 1490 | mdev->rs_same_csum = 0; |
1491 | mdev->rs_total = tw; | ||
1492 | mdev->rs_start = now; | ||
1493 | for (i = 0; i < DRBD_SYNC_MARKS; i++) { | ||
1494 | mdev->rs_mark_left[i] = tw; | ||
1495 | mdev->rs_mark_time[i] = now; | ||
1496 | } | ||
1491 | _drbd_pause_after(mdev); | 1497 | _drbd_pause_after(mdev); |
1492 | } | 1498 | } |
1493 | write_unlock_irq(&global_state_lock); | 1499 | write_unlock_irq(&global_state_lock); |