mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
1fc80cf378
commit
c507f46f26
|
@ -1153,7 +1153,7 @@ int drbd_rs_begin_io(struct drbd_conf *mdev, sector_t sector)
|
|||
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 @@ int drbd_rs_begin_io(struct drbd_conf *mdev, sector_t sector)
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue