1 From: Hannes Reinecke <hare@suse.de>
2 Date: Fri, 14 Aug 2009 16:04:05 +0200
3 Subject: dm-mpath: Skip inactive paths when activating pathgroup
6 Whenever switch pathgroup happens device mapper will try to activate all the
7 paths in the new path group. There is no check to see if the path has already
8 failed. Eventually the failed path will report error. This will reset the
9 current_pgpath and current_pg. The will result in infinite loop. I have added a
10 check to skip the activate_path for the failed path. This fixes the problem.
12 Signed-off-by: Babu Moger <babu.moger@lsi.com>
13 Signed-off-by: Hannes Reinecke <hare@suse.de>
15 drivers/md/dm-mpath.c | 5 +++--
16 1 files changed, 3 insertions(+), 2 deletions(-)
18 diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
19 index ffe3a30..642f85f 100644
20 --- a/drivers/md/dm-mpath.c
21 +++ b/drivers/md/dm-mpath.c
22 @@ -465,9 +465,10 @@ static void process_queued_ios(struct work_struct *work)
24 m->pg_init_required = 0;
25 list_for_each_entry(tmp, &pgpath->pg->pgpaths, list) {
26 - /* Skip disabled paths */
28 + /* Skip disabled or failed paths */
29 + if (!tmp->path.dev || !tmp->is_active)
32 queue_work(kmpath_handlerd, &tmp->activate_path);
33 m->pg_init_in_progress++;