]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virSecurityManagerMetadataLock: Ignore RO filesystem
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 10 Jul 2020 08:48:01 +0000 (10:48 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 10 Jul 2020 12:09:22 +0000 (14:09 +0200)
When locking files for metadata change, we open() them for R/W
access. The write access is needed because we want to acquire
exclusive (write) lock (to mutually exclude with other daemons
trying to modify XATTRs on the same file). Anyway, the open()
might fail if the file lives on a RO filesystem. Well, if that's
the case, ignore the error and continue with the next file on the
list. We won't change any seclabel on the file anyway - there is
nothing to remember then.

Reported-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/security/security_manager.c

index d26d3a05276c575924852015bb8169d3092dfb42..252cfefcffb5fbaf527d0114c36d9645597859eb 100644 (file)
@@ -1359,6 +1359,11 @@ virSecurityManagerMetadataLock(virSecurityManagerPtr mgr G_GNUC_UNUSED,
         }
 
         if ((fd = open(p, O_RDWR)) < 0) {
+            if (errno == EROFS) {
+                /* There is nothing we can do for RO filesystem. */
+                continue;
+            }
+
 #ifndef WIN32
             if (S_ISSOCK(sb.st_mode)) {
                 /* Sockets can be opened only if there exists the