diff options
author | Lars Ellenberg <lars.ellenberg@linbit.com> | 2014-04-28 12:43:16 -0400 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2014-04-30 15:46:54 -0400 |
commit | 9ae472605ad333d4db07da95cc42c68063d2cc0d (patch) | |
tree | fe93c9dd1573f7b785313f2548552f2f1629873a | |
parent | cdc6af8df42313d632cb9ed79dd455daecbd8478 (diff) |
drbd: fix stalled resync detection in /proc/drbd
If we don't make resync or verify progress for "too long",
we want to flag it as "stalled".
Since 2010, "use rolling marks for resync speed calculation"
this "too long" was wrong by a factor of HZ.
With HZ 250, it would have been flagged as stalled
after 100 minutes.
Hardcode 3 minutes instead.
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>
-rw-r--r-- | drivers/block/drbd/drbd_proc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/block/drbd/drbd_proc.c b/drivers/block/drbd/drbd_proc.c index 2f26e8ffa45b..89736bdbbc70 100644 --- a/drivers/block/drbd/drbd_proc.c +++ b/drivers/block/drbd/drbd_proc.c | |||
@@ -116,7 +116,7 @@ static void drbd_syncer_progress(struct drbd_device *device, struct seq_file *se | |||
116 | /* ------------------------ ~18s average ------------------------ */ | 116 | /* ------------------------ ~18s average ------------------------ */ |
117 | i = (device->rs_last_mark + 2) % DRBD_SYNC_MARKS; | 117 | i = (device->rs_last_mark + 2) % DRBD_SYNC_MARKS; |
118 | dt = (jiffies - device->rs_mark_time[i]) / HZ; | 118 | dt = (jiffies - device->rs_mark_time[i]) / HZ; |
119 | if (dt > (DRBD_SYNC_MARK_STEP * DRBD_SYNC_MARKS)) | 119 | if (dt > 180) |
120 | stalled = 1; | 120 | stalled = 1; |
121 | 121 | ||
122 | if (!dt) | 122 | if (!dt) |