aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPhilipp Reisner <philipp.reisner@linbit.com>2010-11-22 09:49:17 -0500
committerPhilipp Reisner <philipp.reisner@linbit.com>2011-03-10 05:35:09 -0500
commitc507f46f26661d4d0dc95a1b1271df5855ab4602 (patch)
treecc83852cc713536229e115030f0892fef97883cf /drivers
parent1fc80cf37810d6b00cac27a219b8ecab2010adac (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.c7
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 }