diff options
author | Philipp Reisner <philipp.reisner@linbit.com> | 2010-11-22 09:49:17 -0500 |
---|---|---|
committer | Philipp Reisner <philipp.reisner@linbit.com> | 2011-03-10 05:35:09 -0500 |
commit | c507f46f26661d4d0dc95a1b1271df5855ab4602 (patch) | |
tree | cc83852cc713536229e115030f0892fef97883cf /drivers | |
parent | 1fc80cf37810d6b00cac27a219b8ecab2010adac (diff) |
drbd: Removed 20 seconds upper bound for side-stepping
Given low-enough network bandwidth combined with a IO
pattern that hammers onto a single RS-extent, side-stepping
might be necessary for much longer times.
Changed the code to print a single informal message after
20 seconds, but it keeps on stepping aside forever.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/block/drbd/drbd_actlog.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/block/drbd/drbd_actlog.c b/drivers/block/drbd/drbd_actlog.c index 5570d9bdc863..4a1b199f4ae7 100644 --- a/drivers/block/drbd/drbd_actlog.c +++ b/drivers/block/drbd/drbd_actlog.c | |||
@@ -1153,7 +1153,7 @@ retry: | |||
1153 | for (i = 0; i < AL_EXT_PER_BM_SECT; i++) { | 1153 | for (i = 0; i < AL_EXT_PER_BM_SECT; i++) { |
1154 | sig = wait_event_interruptible(mdev->al_wait, | 1154 | sig = wait_event_interruptible(mdev->al_wait, |
1155 | !_is_in_al(mdev, enr * AL_EXT_PER_BM_SECT + i) || | 1155 | !_is_in_al(mdev, enr * AL_EXT_PER_BM_SECT + i) || |
1156 | (test_bit(BME_PRIORITY, &bm_ext->flags) && sa)); | 1156 | test_bit(BME_PRIORITY, &bm_ext->flags)); |
1157 | 1157 | ||
1158 | if (sig || (test_bit(BME_PRIORITY, &bm_ext->flags) && sa)) { | 1158 | if (sig || (test_bit(BME_PRIORITY, &bm_ext->flags) && sa)) { |
1159 | spin_lock_irq(&mdev->al_lock); | 1159 | spin_lock_irq(&mdev->al_lock); |
@@ -1167,8 +1167,9 @@ retry: | |||
1167 | return -EINTR; | 1167 | return -EINTR; |
1168 | if (schedule_timeout_interruptible(HZ/10)) | 1168 | if (schedule_timeout_interruptible(HZ/10)) |
1169 | return -EINTR; | 1169 | return -EINTR; |
1170 | if (--sa == 0) | 1170 | if (sa && --sa == 0) |
1171 | dev_warn(DEV,"drbd_rs_begin_io() no longer stepping aside.\n"); | 1171 | dev_warn(DEV,"drbd_rs_begin_io() stepped aside for 20sec." |
1172 | "Resync stalled?\n"); | ||
1172 | goto retry; | 1173 | goto retry; |
1173 | } | 1174 | } |
1174 | } | 1175 | } |