]> xenbits.xensource.com Git - libvirt.git/commitdiff
Don't return fatal error in HAL driver init if HAL isn't running
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 13 Nov 2009 10:36:01 +0000 (10:36 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Fri, 13 Nov 2009 15:10:55 +0000 (15:10 +0000)
The HAL driver returns a fatal error code in the case where HAL
is not running. This causes the entire libvirtd daemon to quit
which isn't desirable. Instead it should simply disable the HAL
driver

* src/node_device/node_device_hal.c: Quietly disable HAL if it is
  not running

src/node_device/node_device_hal.c

index 918a3a9f11d2ff76fcf9baae4f97ac539fe6b09c..1e1d872cd24d68ee811e3f64702f92c6b51da0c3 100644 (file)
@@ -692,6 +692,7 @@ static int halDeviceMonitorStartup(int privileged ATTRIBUTE_UNUSED)
     DBusError err;
     char **udi = NULL;
     int num_devs, i;
+    int ret = -1;
 
     /* Ensure caps_tbl is sorted by capability name */
     qsort(caps_tbl, ARRAY_CARDINALITY(caps_tbl), sizeof(caps_tbl[0]),
@@ -728,7 +729,11 @@ static int halDeviceMonitorStartup(int privileged ATTRIBUTE_UNUSED)
         goto failure;
     }
     if (!libhal_ctx_init(hal_ctx, &err)) {
-        VIR_ERROR0("libhal_ctx_init failed\n");
+        VIR_ERROR0("libhal_ctx_init failed, haldaemon is probably not running\n");
+        /* We don't want to show a fatal error here,
+           otherwise entire libvirtd shuts down when
+           hald isn't running */
+        ret = 0;
         goto failure;
     }
 
@@ -787,7 +792,7 @@ static int halDeviceMonitorStartup(int privileged ATTRIBUTE_UNUSED)
     nodeDeviceUnlock(driverState);
     VIR_FREE(driverState);
 
-    return -1;
+    return ret;
 }