summaryrefslogtreecommitdiff
path: root/usr/src/lib/mpapi
diff options
context:
space:
mode:
authorChris Liu <Chris.Liu@Sun.COM>2009-06-04 14:55:51 +0800
committerChris Liu <Chris.Liu@Sun.COM>2009-06-04 14:55:51 +0800
commit0c3de118c3eb50201538531adc7af57753c37a62 (patch)
tree809a6ab9ca2fc7d826e9ff2301d24bcba6cecb4a /usr/src/lib/mpapi
parent5c51f1241dbbdf2656d0e10011981411ed0c9673 (diff)
downloadillumos-joyent-0c3de118c3eb50201538531adc7af57753c37a62.tar.gz
6837799 iostat -Y failed on the PHCI driver name with '_'
6681713 mpathadm list LU fails after LUN is unmapped and all device paths are considered failed by MPxIO
Diffstat (limited to 'usr/src/lib/mpapi')
-rw-r--r--usr/src/lib/mpapi/libmpscsi_vhci/common/MP_GetMultipathLusPlugin.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/usr/src/lib/mpapi/libmpscsi_vhci/common/MP_GetMultipathLusPlugin.c b/usr/src/lib/mpapi/libmpscsi_vhci/common/MP_GetMultipathLusPlugin.c
index 91670ad4f0..861f14c8a5 100644
--- a/usr/src/lib/mpapi/libmpscsi_vhci/common/MP_GetMultipathLusPlugin.c
+++ b/usr/src/lib/mpapi/libmpscsi_vhci/common/MP_GetMultipathLusPlugin.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -61,21 +61,27 @@ static int getOidList(di_node_t root_node, MP_OID_LIST *pOidList)
if (haveList && (numNodes < pOidList->oidCount)) {
+ /* skip the node which is not online */
+ if (di_state(sv_child_node) != 0) {
+ sv_child_node = di_sibling_node(sv_child_node);
+ continue;
+ }
+
instNum =
- (MP_UINT64)di_instance(sv_child_node);
+ (MP_UINT64)di_instance(sv_child_node);
log(LOG_INFO, "getOidList()",
" - instance number is: %llx",
instNum);
pOidList->oids[numNodes].objectType =
- MP_OBJECT_TYPE_MULTIPATH_LU;
+ MP_OBJECT_TYPE_MULTIPATH_LU;
pOidList->oids[numNodes].ownerId =
- g_pluginOwnerID;
+ g_pluginOwnerID;
pOidList->oids[numNodes].objectSequenceNumber =
- instNum;
+ instNum;
}
++numNodes;
@@ -147,10 +153,10 @@ MP_GetMultipathLusPlugin(MP_OID_LIST **ppList)
}
pOidList->oids[0].objectType =
- MP_OBJECT_TYPE_MULTIPATH_LU;
+ MP_OBJECT_TYPE_MULTIPATH_LU;
pOidList->oids[0].ownerId =
- g_pluginOwnerID;
+ g_pluginOwnerID;
*ppList = pOidList;