summaryrefslogtreecommitdiff
path: root/drivers/block/drbd/drbd_actlog.c
diff options
context:
space:
mode:
authorPhilipp Reisner <philipp.reisner@linbit.com>2010-11-22 17:49:17 +0300
committerPhilipp Reisner <philipp.reisner@linbit.com>2011-03-10 13:35:09 +0300
commitc507f46f26661d4d0dc95a1b1271df5855ab4602 (patch)
treecc83852cc713536229e115030f0892fef97883cf /drivers/block/drbd/drbd_actlog.c
parent1fc80cf37810d6b00cac27a219b8ecab2010adac (diff)
downloadlinux-c507f46f26661d4d0dc95a1b1271df5855ab4602.tar.xz
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/block/drbd/drbd_actlog.c')
-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:
for (i = 0; i < AL_EXT_PER_BM_SECT; i++) {
sig = wait_event_interruptible(mdev->al_wait,
!_is_in_al(mdev, enr * AL_EXT_PER_BM_SECT + i) ||
- (test_bit(BME_PRIORITY, &bm_ext->flags) && sa));
+ test_bit(BME_PRIORITY, &bm_ext->flags));
if (sig || (test_bit(BME_PRIORITY, &bm_ext->flags) && sa)) {
spin_lock_irq(&mdev->al_lock);
@@ -1167,8 +1167,9 @@ retry:
return -EINTR;
if (schedule_timeout_interruptible(HZ/10))
return -EINTR;
- if (--sa == 0)
- dev_warn(DEV,"drbd_rs_begin_io() no longer stepping aside.\n");
+ if (sa && --sa == 0)
+ dev_warn(DEV,"drbd_rs_begin_io() stepped aside for 20sec."
+ "Resync stalled?\n");
goto retry;
}
}