The current method used by detect_prio was selecting the ALUA prioritizer for devices that didn't have ALUA enabled. This patch makes detect_prio go through all the steps to get a priority with the ALUA prioritizer. If it is able to successfully get a priority, then it selects the ALUA proritizer for the device. Signed-off-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> --- libmultipath/propsel.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c index 211ebcd..df09603 100644 --- a/libmultipath/propsel.c +++ b/libmultipath/propsel.c @@ -396,10 +396,17 @@ select_getuid (struct path * pp) void detect_prio(struct path * pp) { + int ret; struct prio *p = &pp->prio; - if (get_target_port_group_support(pp->fd) > 0) - prio_get(p, PRIO_ALUA, DEFAULT_PRIO_ARGS); + if (get_target_port_group_support(pp->fd) <= 0) + return; + ret = get_target_port_group(pp->fd); + if (ret < 0) + return; + if (get_asymmetric_access_state(pp->fd, ret) < 0) + return; + prio_get(p, PRIO_ALUA, DEFAULT_PRIO_ARGS); } extern int -- 1.8.4.2 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel