Change dm-mpath.c:do_work() return a wakeup hint. --- diff/drivers/md/dm-mpath.c 2004-01-27 16:01:54.000000000 +0000 +++ source/drivers/md/dm-mpath.c 2004-01-27 16:00:15.000000000 +0000 @@ -298,6 +298,7 @@ { unsigned long flags; struct multipath *m; + unsigned interval = 0; spin_lock(&_mpath_lock); list_for_each_entry (m, &_mpaths, list) { @@ -311,11 +312,14 @@ m->trigger_event = 0; } spin_unlock_irqrestore(&m->path_lock, flags); + + interval = min_not_zero(interval, m->test_interval); } spin_unlock(&_mpath_lock); blk_run_queues(); - return (jiffy_t) 0; + + return ((jiffy_t) interval) * HZ; } /*-----------------------------------------------------------------