[CRIU] [PATCH 14/14] mount: don't open the same root twise
Andrey Vagin
avagin at openvz.org
Thu Apr 17 12:24:08 PDT 2014
Signed-off-by: Andrey Vagin <avagin at openvz.org>
---
mount.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/mount.c b/mount.c
index 92c6a6c..72ec81d 100644
--- a/mount.c
+++ b/mount.c
@@ -1789,10 +1789,15 @@ out:
int mntns_collect_root(pid_t pid)
{
+ static int mntns_root_pid = -1;
+
int fd, pfd;
int ret;
char path[PATH_MAX + 1];
+ if (mntns_root_pid == pid) /* The required root is already opened */
+ return get_service_fd(ROOT_FD_OFF);
+
close_service_fd(ROOT_FD_OFF);
if (!(root_ns_mask & CLONE_NEWNS)) {
@@ -1841,6 +1846,8 @@ int mntns_collect_root(pid_t pid)
set_root:
ret = install_service_fd(ROOT_FD_OFF, fd);
+ if (ret >= 0)
+ mntns_root_pid = pid;
close(fd);
return ret;
}
--
1.8.5.3
More information about the CRIU
mailing list