]> xenbits.xensource.com Git - libvirt.git/commitdiff
Allow domain disk images on root-squash NFS to coexist with security driver.
authorLaine Stump <laine@laine.org>
Thu, 1 Apr 2010 15:58:34 +0000 (11:58 -0400)
committerLaine Stump <laine@laine.org>
Fri, 2 Apr 2010 13:39:20 +0000 (09:39 -0400)
(suggested by Daniel Berrange, tested by Dan Kenigsberg)

virStorageFileGetMetadata will fail for disk images that are stored on
a root-squash NFS share that isn't world-readable.
SELinuxSetSecurityImageLabel is called during the startup of every
domain (as long as security_driver != "none"), and it will propogate
the error from virStorageFileGetMetadata, causing the domain startup
to fail. This is, however, a common scenario when qemu is run as a
non-root user and the disk image is stored on NFS.

Ignoring this failure (which doesn't matter in this case, since the
next thing done by SELinuxSetSecurityImageLabel - setting the file
context - will also fail (and that function already ignores failures
due to root-squash NFS) will allow us to continue bringing up the
domain. The result is that we don't need to disable the entire
security driver just because a domain's disk image is stored on
root-squashed NFS.

src/security/security_selinux.c

index 6680e2d23841b55464c7165d4c3c75c0ec20219c..3e204754da5c28ac396fea2ef2691ddd61ad4745 100644 (file)
@@ -430,7 +430,7 @@ SELinuxSetSecurityImageLabel(virDomainObjPtr vm,
         path = NULL;
 
         if (ret < 0)
-            return -1;
+           break;
 
         if (meta.backingStore != NULL &&
             SELinuxSetFilecon(meta.backingStore,