1 Star 0 Fork 71

tzr/libvirt

forked from src-openEuler/libvirt 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
virSecurityManagerMetadataLock-Ignore-RO-filesystem.patch 1.67 KB
一键复制 编辑 原始数据 按行查看 历史
From 4f9226a33786ead60eb470f88783d8764a66e35a Mon Sep 17 00:00:00 2001
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 10 Jul 2020 10:48:01 +0200
Subject: [PATCH 007/108] virSecurityManagerMetadataLock: Ignore RO filesystem
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
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>
(cherry picked from commit c531f42755119190888ac73a58f93d79de5afa56)
---
src/security/security_manager.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/security/security_manager.c b/src/security/security_manager.c
index 1445291410..5159abd92d 100644
--- a/src/security/security_manager.c
+++ b/src/security/security_manager.c
@@ -1336,6 +1336,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
--
2.33.0
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/tom0392/libvirt.git
git@gitee.com:tom0392/libvirt.git
tom0392
libvirt
libvirt
master

搜索帮助