File multipath-tools-emc-priority-increase of Package multipath-tools
commit 91b9ef5a1cf36c8420f85aa45daa8239384453dd
Author: Hannes Reinecke <hare@suse.de>
Date: Fri Mar 20 10:30:04 2009 +0100
Increase priority value for emc priority callout
For non-default paths the emc priority callout should
not return '0', as this will inhibit the daemon to switch
paths.
References: bnc#484529
Signed-off-by: Hannes Reinecke <hare@suse.de>
diff --git a/libmultipath/prioritizers/emc.c b/libmultipath/prioritizers/emc.c
index c3301b2..dcf127b 100644
--- a/libmultipath/prioritizers/emc.c
+++ b/libmultipath/prioritizers/emc.c
@@ -58,17 +58,23 @@ int emc_clariion_prio(const char *dev, int fd)
/* Arraycommpath should be set to 1 */
|| (sense_buffer[30] & 0x04) != 0x04) {
pp_emc_log(0, "path not correctly configured for failover");
+ goto out;
}
if ( /* LUN operations should indicate normal operations */
sense_buffer[48] != 0x00) {
pp_emc_log(0, "path not available for normal operations");
+ goto out;
}
+ /* LUN state: unbound, bound, or owned */
+ ret = sense_buffer[4];
+
/* Is the default owner equal to this path? */
/* Note this will switch to the default priority group, even if
* it is not the currently active one. */
- ret = (sense_buffer[5] == sense_buffer[8]) ? 1 : 0;
+ if (sense_buffer[5] == sense_buffer[8])
+ ret+=2;
out:
return(ret);