[libvirt] [PATCH 3/4] nodedev: Implement virNodeDeviceLookupSCSIHostByWWN

Osier Yang jyang at redhat.com
Mon Feb 4 13:03:11 UTC 2013


This just simply changes nodeDeviceLookupByWWN to be not static,
and its name into nodeDeviceLookupSCSIHostByWWN. And use that for
udev and HAL backends.
---
 src/node_device/node_device_driver.c |   13 ++++++++-----
 src/node_device/node_device_driver.h |    4 ++++
 src/node_device/node_device_hal.c    |    1 +
 src/node_device/node_device_udev.c   |    1 +
 4 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c
index 2b46041..64fd831 100644
--- a/src/node_device/node_device_driver.c
+++ b/src/node_device/node_device_driver.c
@@ -224,10 +224,11 @@ cleanup:
 }
 
 
-static virNodeDevicePtr
-nodeDeviceLookupByWWN(virConnectPtr conn,
-                      const char *wwnn,
-                      const char *wwpn)
+virNodeDevicePtr
+nodeDeviceLookupSCSIHostByWWN(virConnectPtr conn,
+                              const char *wwnn,
+                              const char *wwpn,
+                              unsigned int flags)
 {
     unsigned int i;
     virDeviceMonitorStatePtr driver = conn->devMonPrivateData;
@@ -236,6 +237,8 @@ nodeDeviceLookupByWWN(virConnectPtr conn,
     virNodeDeviceObjPtr obj = NULL;
     virNodeDevicePtr dev = NULL;
 
+    virCheckFlags(0, NULL);
+
     nodeDeviceLock(driver);
 
     for (i = 0; i < devs->count; i++) {
@@ -546,7 +549,7 @@ find_new_device(virConnectPtr conn, const char *wwnn, const char *wwpn)
 
         virFileWaitForDevices();
 
-        dev = nodeDeviceLookupByWWN(conn, wwnn, wwpn);
+        dev = nodeDeviceLookupSCSIHostByWWN(conn, wwnn, wwpn, 0);
 
         if (dev != NULL) {
             break;
diff --git a/src/node_device/node_device_driver.h b/src/node_device/node_device_driver.h
index 5520740..510ae73 100644
--- a/src/node_device/node_device_driver.h
+++ b/src/node_device/node_device_driver.h
@@ -77,6 +77,10 @@ int nodeListAllNodeDevices(virConnectPtr conn,
                            virNodeDevicePtr **devices,
                            unsigned int flags);
 virNodeDevicePtr nodeDeviceLookupByName(virConnectPtr conn, const char *name);
+virNodeDevicePtr nodeDeviceLookupSCSIHostByWWN(virConnectPtr conn,
+                                               const char *wwnn,
+                                               const char *wwpn,
+                                               unsigned int flags);
 char *nodeDeviceGetXMLDesc(virNodeDevicePtr dev, unsigned int flags);
 char *nodeDeviceGetParent(virNodeDevicePtr dev);
 int nodeDeviceNumOfCaps(virNodeDevicePtr dev);
diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c
index 610df8d..20714d3 100644
--- a/src/node_device/node_device_hal.c
+++ b/src/node_device/node_device_hal.c
@@ -765,6 +765,7 @@ static virDeviceMonitor halDeviceMonitor = {
     .listDevices = nodeListDevices, /* 0.5.0 */
     .listAllNodeDevices = nodeListAllNodeDevices, /* 0.10.2 */
     .deviceLookupByName = nodeDeviceLookupByName, /* 0.5.0 */
+    .deviceLookupSCSIHostByWWN = nodeDeviceLookupSCSIHostByWWN, /* 1.0.2 */
     .deviceGetXMLDesc = nodeDeviceGetXMLDesc, /* 0.5.0 */
     .deviceGetParent = nodeDeviceGetParent, /* 0.5.0 */
     .deviceNumOfCaps = nodeDeviceNumOfCaps, /* 0.5.0 */
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index a9b30b2..1be8526 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -1754,6 +1754,7 @@ static virDeviceMonitor udevDeviceMonitor = {
     .listDevices = nodeListDevices, /* 0.7.3 */
     .listAllNodeDevices = nodeListAllNodeDevices, /* 0.10.2 */
     .deviceLookupByName = nodeDeviceLookupByName, /* 0.7.3 */
+    .deviceLookupSCSIHostByWWN = nodeDeviceLookupSCSIHostByWWN, /* 1.0.2 */
     .deviceGetXMLDesc = nodeDeviceGetXMLDesc, /* 0.7.3 */
     .deviceGetParent = nodeDeviceGetParent, /* 0.7.3 */
     .deviceNumOfCaps = nodeDeviceNumOfCaps, /* 0.7.3 */
-- 
1.7.7.6




More information about the libvir-list mailing list