diff options
author | Chris Liu <Chris.Liu@Sun.COM> | 2009-06-04 14:55:51 +0800 |
---|---|---|
committer | Chris Liu <Chris.Liu@Sun.COM> | 2009-06-04 14:55:51 +0800 |
commit | 0c3de118c3eb50201538531adc7af57753c37a62 (patch) | |
tree | 809a6ab9ca2fc7d826e9ff2301d24bcba6cecb4a /usr/src/lib/mpapi | |
parent | 5c51f1241dbbdf2656d0e10011981411ed0c9673 (diff) | |
download | illumos-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.c | 20 |
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; |