]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Only let VM drivers block libvirtd timed shutdown
authorDaniel P. Berrange <berrange@redhat.com>
Tue, 4 Dec 2012 12:12:51 +0000 (12:12 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Tue, 4 Dec 2012 12:12:51 +0000 (12:12 +0000)
The only important state that should prevent libvirtd shutdown
is from running VMs. Networks, host devices, network filters
and storage pools are all long lived resources that have no
significant in-memory state. They should not block shutdown.

src/network/bridge_driver.c
src/node_device/node_device_hal.c
src/node_device/node_device_udev.c
src/nwfilter/nwfilter_driver.c
src/storage/storage_driver.c

index 75f3c3a3987285fe1a14398d2a2a773bace4584f..03ba4c61b2aa714e994f7cd707e80dc378963ba0 100644 (file)
@@ -468,33 +468,6 @@ networkReload(void) {
     return 0;
 }
 
-/**
- * networkActive:
- *
- * Checks if the QEmu daemon is active, i.e. has an active domain or
- * an active network
- *
- * Returns 1 if active, 0 otherwise
- */
-static int
-networkActive(void) {
-    unsigned int i;
-    int active = 0;
-
-    if (!driverState)
-        return 0;
-
-    networkDriverLock(driverState);
-    for (i = 0 ; i < driverState->networks.count ; i++) {
-        virNetworkObjPtr net = driverState->networks.objs[i];
-        virNetworkObjLock(net);
-        if (virNetworkObjIsActive(net))
-            active = 1;
-        virNetworkObjUnlock(net);
-    }
-    networkDriverUnlock(driverState);
-    return active;
-}
 
 /**
  * networkShutdown:
@@ -3357,7 +3330,6 @@ static virStateDriver networkStateDriver = {
     .initialize  = networkStartup,
     .cleanup = networkShutdown,
     .reload = networkReload,
-    .active = networkActive,
 };
 
 int networkRegister(void) {
index 953e1d3d3c73f94066239cc1895ab5baf122042e..96d23a4e8c7144c4798886d6d56d501440bb5a45 100644 (file)
@@ -736,13 +736,6 @@ static int halDeviceMonitorReload(void)
 }
 
 
-static int halDeviceMonitorActive(void)
-{
-    /* Always ready to deal with a shutdown */
-    return 0;
-}
-
-
 static virDrvOpenStatus halNodeDrvOpen(virConnectPtr conn,
                                        virConnectAuthPtr auth ATTRIBUTE_UNUSED,
                                        unsigned int flags)
@@ -786,7 +779,6 @@ static virStateDriver halStateDriver = {
     .initialize = halDeviceMonitorStartup, /* 0.5.0 */
     .cleanup = halDeviceMonitorShutdown, /* 0.5.0 */
     .reload = halDeviceMonitorReload, /* 0.5.0 */
-    .active = halDeviceMonitorActive, /* 0.5.0 */
 };
 
 int halNodeRegister(void)
index bc4e2e937c49fef4e7e70b05518d8838f59eb289..393fe20b82785d28d90e1eec12400bd6a6c30690 100644 (file)
@@ -1723,13 +1723,6 @@ static int udevDeviceMonitorReload(void)
 }
 
 
-static int udevDeviceMonitorActive(void)
-{
-    /* Always ready to deal with a shutdown */
-    return 0;
-}
-
-
 static virDrvOpenStatus udevNodeDrvOpen(virConnectPtr conn,
                                         virConnectAuthPtr auth ATTRIBUTE_UNUSED,
                                         unsigned int flags)
@@ -1772,7 +1765,6 @@ static virStateDriver udevStateDriver = {
     .initialize = udevDeviceMonitorStartup, /* 0.7.3 */
     .cleanup = udevDeviceMonitorShutdown, /* 0.7.3 */
     .reload = udevDeviceMonitorReload, /* 0.7.3 */
-    .active = udevDeviceMonitorActive, /* 0.7.3 */
 };
 
 int udevNodeRegister(void)
index cff384e3beddf71513f08f0cb92bf929596c55b6..ddf0bbd98d593412f8e5907d36ab192afe7078cc 100644 (file)
@@ -304,27 +304,6 @@ nwfilterDriverReload(void) {
     return 0;
 }
 
-/**
- * virNWFilterActive:
- *
- * Checks if the nwfilter driver is active, i.e. has an active nwfilter
- *
- * Returns 1 if active, 0 otherwise
- */
-static int
-nwfilterDriverActive(void) {
-    int ret;
-
-    if (!driverState)
-        return 0;
-
-    nwfilterDriverLock(driverState);
-    ret = driverState->nwfilters.count ? 1 : 0;
-    ret |= driverState->watchingFirewallD;
-    nwfilterDriverUnlock(driverState);
-
-    return ret;
-}
 
 /**
  * virNWFilterIsWatchingFirewallD:
@@ -695,7 +674,6 @@ static virStateDriver stateDriver = {
     .initialize = nwfilterDriverStartup,
     .cleanup = nwfilterDriverShutdown,
     .reload = nwfilterDriverReload,
-    .active = nwfilterDriverActive,
 };
 
 
index d27bb41278da1a4a361ed164c272de759170b463..55177337d2c136c934fdcc85e6bf62c6e13e8dc0 100644 (file)
@@ -202,33 +202,6 @@ storageDriverReload(void) {
     return 0;
 }
 
-/**
- * virStorageActive:
- *
- * Checks if the storage driver is active, i.e. has an active pool
- *
- * Returns 1 if active, 0 otherwise
- */
-static int
-storageDriverActive(void) {
-    unsigned int i;
-    int active = 0;
-
-    if (!driverState)
-        return 0;
-
-    storageDriverLock(driverState);
-
-    for (i = 0 ; i < driverState->pools.count ; i++) {
-        virStoragePoolObjLock(driverState->pools.objs[i]);
-        if (virStoragePoolObjIsActive(driverState->pools.objs[i]))
-            active = 1;
-        virStoragePoolObjUnlock(driverState->pools.objs[i]);
-    }
-
-    storageDriverUnlock(driverState);
-    return active;
-}
 
 /**
  * virStorageShutdown:
@@ -2445,7 +2418,6 @@ static virStateDriver stateDriver = {
     .initialize = storageDriverStartup,
     .cleanup = storageDriverShutdown,
     .reload = storageDriverReload,
-    .active = storageDriverActive,
 };
 
 int storageRegister(void) {