summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMoger, Babu <Babu.Moger@lsi.com>2010-03-06 02:29:49 +0000
committerAlasdair G Kergon <agk@redhat.com>2010-03-06 02:29:49 +0000
commitf7b934c8127deebf4eb56fbe4a4ae0da16b6dbcd (patch)
tree75e4a78786f3a782142d9d686d53aac9204f5fc1
parent83c0d5d5388a8d45f7a45e0ec34adc52a78c81ad (diff)
downloadop-kernel-dev-f7b934c8127deebf4eb56fbe4a4ae0da16b6dbcd.zip
op-kernel-dev-f7b934c8127deebf4eb56fbe4a4ae0da16b6dbcd.tar.gz
dm mpath: skip activate_path for failed paths
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>
-rw-r--r--drivers/md/dm-mpath.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
index 2c6bf74..ecada41 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -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
*/
OpenPOWER on IntegriCloud