mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-11 14:11:31 +00:00
libxl: Check for control_d string to decide about dom0
As soon as any guest mounts xenfs to /proc/xen, there is a capabilities file in that directory. However it returns nothing when reading from it. Change the test to actually check the contents of the file. BugLink: http://bugs.launchpad.net/bugs/1248025 Signed-off-by: Stefan Bader <stefan.bader@canonical.com> (cherry picked from commit 8c869ad9f9c5d57ba0ef516835a08afdba7ad828)
This commit is contained in:
parent
a36e39cf89
commit
7400b8571c
@ -783,6 +783,7 @@ libxlDriverShouldLoad(bool privileged)
|
||||
bool ret = false;
|
||||
virCommandPtr cmd;
|
||||
int status;
|
||||
char *output = NULL;
|
||||
|
||||
/* Don't load if non-root */
|
||||
if (!privileged) {
|
||||
@ -790,8 +791,17 @@ libxlDriverShouldLoad(bool privileged)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Don't load if not running on a Xen control domain (dom0) */
|
||||
if (!virFileExists("/proc/xen/capabilities")) {
|
||||
/*
|
||||
* Don't load if not running on a Xen control domain (dom0). It is not
|
||||
* sufficient to check for the file to exist as any guest can mount
|
||||
* xenfs to /proc/xen.
|
||||
*/
|
||||
status = virFileReadAll("/proc/xen/capabilities", 10, &output);
|
||||
if (status >= 0) {
|
||||
status = strncmp(output, "control_d", 9);
|
||||
}
|
||||
VIR_FREE(output);
|
||||
if (status) {
|
||||
VIR_INFO("No Xen capabilities detected, probably not running "
|
||||
"in a Xen Dom0. Disabling libxenlight driver");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user