d76c62
From 4f9e2b4b36fda208d25acf4126abbf4fee37f0b5 Mon Sep 17 00:00:00 2001
d76c62
Message-Id: <4f9e2b4b36fda208d25acf4126abbf4fee37f0b5@dist-git>
d76c62
From: Michal Privoznik <mprivozn@redhat.com>
d76c62
Date: Tue, 25 Feb 2020 11:24:52 +0100
d76c62
Subject: [PATCH] security: Don't fail if locking a file on NFS mount fails
d76c62
d76c62
The way that our file locking works is that we open() the file we
d76c62
want to lock and then use fcntl(fd, F_SETLKW, ...) to lock it.
d76c62
The problem is, we are doing all of these as root which doesn't
d76c62
work if the file lives on root squashed NFS, because if it does
d76c62
then the open() fails. The way to resolve this is to make this a
d76c62
non fatal error and leave callers deal with this (i.e. disable
d76c62
remembering) - implemented in the previous commit.
d76c62
d76c62
https://bugzilla.redhat.com/show_bug.cgi?id=1804672
d76c62
d76c62
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
d76c62
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
d76c62
(cherry picked from commit f16663d58f7aab6bf800fcffd34f83f522927897)
d76c62
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
d76c62
Message-Id: <d3cb3d3214cf3e67bd357fa9781ce55f8dc8c751.1582626185.git.mprivozn@redhat.com>
d76c62
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
d76c62
---
d76c62
 src/security/security_manager.c | 5 +++++
d76c62
 1 file changed, 5 insertions(+)
d76c62
d76c62
diff --git a/src/security/security_manager.c b/src/security/security_manager.c
d76c62
index 9d06316a99..23ed6a127c 100644
d76c62
--- a/src/security/security_manager.c
d76c62
+++ b/src/security/security_manager.c
d76c62
@@ -1343,6 +1343,11 @@ virSecurityManagerMetadataLock(virSecurityManagerPtr mgr G_GNUC_UNUSED,
d76c62
                 continue;
d76c62
             }
d76c62
 
d76c62
+            if (virFileIsSharedFS(p)) {
d76c62
+                /* Probably a root squashed NFS. */
d76c62
+                continue;
d76c62
+            }
d76c62
+
d76c62
             virReportSystemError(errno,
d76c62
                                  _("unable to open %s"),
d76c62
                                  p);
d76c62
-- 
d76c62
2.25.1
d76c62