diff --git a/ChangeLog b/ChangeLog index 957cbfef5d..829fe103c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Jun 17 10:31:35 CEST 2009 Daniel Veillard + + * src/node_device.[ch] src/storage_backend.[ch]: fixes a + module dependency problem, patch by Dave Allan + Tue Jun 16 14:30:05 EDT 2009 Cole Robinson * src/domain_conf.c diff --git a/src/node_device.c b/src/node_device.c index de51bc85f4..d01695d67d 100644 --- a/src/node_device.c +++ b/src/node_device.c @@ -34,6 +34,7 @@ #include "logging.h" #include "node_device_conf.h" #include "node_device.h" +#include "storage_backend.h" /* For virWaitForDevices */ #define VIR_FROM_THIS VIR_FROM_NODEDEV @@ -560,7 +561,7 @@ find_new_device(virConnectPtr conn, const char *wwnn, const char *wwpn) while ((now - start) < LINUX_NEW_DEVICE_WAIT_TIME) { - virNodeDeviceWaitForDevices(conn); + virWaitForDevices(conn); dev = nodeDeviceLookupByWWN(conn, wwnn, wwpn); @@ -694,32 +695,6 @@ out: } -#if defined(UDEVADM) || defined(UDEVSETTLE) -void virNodeDeviceWaitForDevices(virConnectPtr conn) -{ -#ifdef UDEVADM - const char *const settleprog[] = { UDEVADM, "settle", NULL }; -#else - const char *const settleprog[] = { UDEVSETTLE, NULL }; -#endif - int exitstatus; - - if (access(settleprog[0], X_OK) != 0) - return; - - /* - * NOTE: we ignore errors here; this is just to make sure that any device - * nodes that are being created finish before we try to scan them. - * If this fails for any reason, we still have the backup of polling for - * 5 seconds for device nodes. - */ - virRun(conn, settleprog, &exitstatus); -} -#else -void virNodeDeviceWaitForDevices(virConnectPtr conn ATTRIBUTE_UNUSED) {} -#endif - - void registerCommonNodeFuncs(virDeviceMonitorPtr driver) { driver->numOfDevices = nodeNumOfDevices; diff --git a/src/node_device.h b/src/node_device.h index 882ba0f5cd..db016244ef 100644 --- a/src/node_device.h +++ b/src/node_device.h @@ -53,6 +53,4 @@ void registerCommonNodeFuncs(virDeviceMonitorPtr mon); int nodedevRegister(void); -void virNodeDeviceWaitForDevices(virConnectPtr conn); - #endif /* __VIR_NODE_DEVICE_H__ */ diff --git a/src/storage_backend.c b/src/storage_backend.c index d731a23080..953928e857 100644 --- a/src/storage_backend.c +++ b/src/storage_backend.c @@ -96,6 +96,32 @@ static virStorageBackendPtr backends[] = { }; +#if defined(UDEVADM) || defined(UDEVSETTLE) +void virWaitForDevices(virConnectPtr conn) +{ +#ifdef UDEVADM + const char *const settleprog[] = { UDEVADM, "settle", NULL }; +#else + const char *const settleprog[] = { UDEVSETTLE, NULL }; +#endif + int exitstatus; + + if (access(settleprog[0], X_OK) != 0) + return; + + /* + * NOTE: we ignore errors here; this is just to make sure that any device + * nodes that are being created finish before we try to scan them. + * If this fails for any reason, we still have the backup of polling for + * 5 seconds for device nodes. + */ + virRun(conn, settleprog, &exitstatus); +} +#else +void virWaitForDevices(virConnectPtr conn ATTRIBUTE_UNUSED) {} +#endif + + virStorageBackendPtr virStorageBackendForType(int type) { unsigned int i; @@ -259,7 +285,7 @@ virStorageBackendUpdateVolTargetInfoFD(virConnectPtr conn, void virStorageBackendWaitForDevices(virConnectPtr conn) { - virNodeDeviceWaitForDevices(conn); + virWaitForDevices(conn); return; } @@ -668,3 +694,4 @@ virStorageBackendRunProgNul(virConnectPtr conn, return -1; } #endif + diff --git a/src/storage_backend.h b/src/storage_backend.h index 7bf8814d3e..a3f441c48f 100644 --- a/src/storage_backend.h +++ b/src/storage_backend.h @@ -111,4 +111,6 @@ int virStorageBackendRunProgNul(virConnectPtr conn, virStorageBackendListVolNulFunc func, void *data); +void virWaitForDevices(virConnectPtr conn); + #endif /* __VIR_STORAGE_BACKEND_H__ */