提交 7400b857 编写于 作者: S Stefan Bader 提交者: Cole Robinson

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/1248025Signed-off-by: NStefan Bader <stefan.bader@canonical.com>
(cherry picked from commit 8c869ad9)
上级 a36e39cf
......@@ -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");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册