提交 7bed630d 编写于 作者: D Daniel P. Berrange

Don't return fatal error in HAL driver init if HAL isn't running

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
上级 4be6e024
...@@ -692,6 +692,7 @@ static int halDeviceMonitorStartup(int privileged ATTRIBUTE_UNUSED) ...@@ -692,6 +692,7 @@ static int halDeviceMonitorStartup(int privileged ATTRIBUTE_UNUSED)
DBusError err; DBusError err;
char **udi = NULL; char **udi = NULL;
int num_devs, i; int num_devs, i;
int ret = -1;
/* Ensure caps_tbl is sorted by capability name */ /* Ensure caps_tbl is sorted by capability name */
qsort(caps_tbl, ARRAY_CARDINALITY(caps_tbl), sizeof(caps_tbl[0]), qsort(caps_tbl, ARRAY_CARDINALITY(caps_tbl), sizeof(caps_tbl[0]),
...@@ -728,7 +729,11 @@ static int halDeviceMonitorStartup(int privileged ATTRIBUTE_UNUSED) ...@@ -728,7 +729,11 @@ static int halDeviceMonitorStartup(int privileged ATTRIBUTE_UNUSED)
goto failure; goto failure;
} }
if (!libhal_ctx_init(hal_ctx, &err)) { 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; goto failure;
} }
...@@ -787,7 +792,7 @@ static int halDeviceMonitorStartup(int privileged ATTRIBUTE_UNUSED) ...@@ -787,7 +792,7 @@ static int halDeviceMonitorStartup(int privileged ATTRIBUTE_UNUSED)
nodeDeviceUnlock(driverState); nodeDeviceUnlock(driverState);
VIR_FREE(driverState); VIR_FREE(driverState);
return -1; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册