Zero m->current_path if it has failed, so that we choose a new one more quickly. --- diff/drivers/md/dm-mpath.c 2004-02-09 11:27:24.000000000 +0000 +++ source/drivers/md/dm-mpath.c 2004-02-10 15:34:16.000000000 +0000 @@ -226,6 +226,10 @@ iterate_paths(m, clear_tested); m->nr_tested_paths = 0; } + + if (path == m->current_path) + m->current_path = NULL; + spin_unlock(&m->lock); }