mount: don't open the same root twise

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
Andrey Vagin 2014-04-21 18:23:46 +04:00 committed by Pavel Emelyanov
parent 2f4be997b6
commit 37924895b5

View file

@ -1776,10 +1776,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)) {
@ -1828,6 +1833,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;
}