]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
dm mpath: skip activate_path for failed paths
authorMoger, Babu <Babu.Moger@lsi.com>
Sat, 6 Mar 2010 02:29:49 +0000 (02:29 +0000)
committerAlasdair G Kergon <agk@redhat.com>
Sat, 6 Mar 2010 02:29:49 +0000 (02:29 +0000)
This patch adds two minor fixes while processing device mapper path activation.

Skip failed paths while calling activate_path.  If the path is already failed
then activate_path will fail for sure. We don't have to call in that case. In
some case this might cause prolonged retries unnecessarily.

Change the misleading message if the path being activated fails with SCSI_DH_NOSYS.

Signed-off-by: Babu Moger <babu.moger@lsi.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-mpath.c

index 2c6bf74ad5c18e0ddcd6df694c81201851e624c6..ecada419809c95a93906ad9f0e32f6b1332e69cd 100644 (file)
@@ -461,6 +461,9 @@ static void process_queued_ios(struct work_struct *work)
                m->pg_init_count++;
                m->pg_init_required = 0;
                list_for_each_entry(tmp, &pgpath->pg->pgpaths, list) {
+                       /* Skip failed paths */
+                       if (!tmp->is_active)
+                               continue;
                        if (queue_work(kmpath_handlerd, &tmp->activate_path))
                                m->pg_init_in_progress++;
                }
@@ -1142,8 +1145,8 @@ static void pg_init_done(void *data, int errors)
                        errors = 0;
                        break;
                }
-               DMERR("Cannot failover device because scsi_dh_%s was not "
-                     "loaded.", m->hw_handler_name);
+               DMERR("Could not failover the device: Handler scsi_dh_%s "
+                     "Error %d.", m->hw_handler_name, errors);
                /*
                 * Fail path for now, so we do not ping pong
                 */