Commit b0d7cc97 authored by Andrey Vagin's avatar Andrey Vagin Committed by Pavel Emelyanov

mount: Add suport of empty binfmt_misc (v3)

Binfmt is global fs. We could check for its inhabitants intersect on
source and destination, but for the 1st time it's enough just to check
this one being empty.
Signed-off-by: 's avatarAndrey Vagin <avagin@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent af15b75b
......@@ -179,7 +179,7 @@ static struct mount_info *mnt_build_tree(struct mount_info *list)
return tree;
}
DIR *open_mountpoint(struct mount_info *pm)
static DIR *open_mountpoint(struct mount_info *pm)
{
int fd, ret;
char path[PATH_MAX + 1];
......@@ -222,7 +222,7 @@ DIR *open_mountpoint(struct mount_info *pm)
return fdir;
}
int close_mountpoint(DIR *dfd)
static int close_mountpoint(DIR *dfd)
{
if (closedir(dfd)) {
pr_perror("Unable to close directory");
......@@ -231,11 +231,42 @@ int close_mountpoint(DIR *dfd)
return 0;
}
static int binfmt_misc_dump(struct mount_info *pm)
{
int ret = -1;
struct dirent *de;
DIR *fdir = NULL;
fdir = open_mountpoint(pm);
if (fdir == NULL)
return -1;
while ((de = readdir(fdir))) {
if (!strcmp(de->d_name, "."))
continue;
if (!strcmp(de->d_name, ".."))
continue;
if (!strcmp(de->d_name, "register"))
continue;
if (!strcmp(de->d_name, "status"))
continue;
pr_err("binfmt_misc isn't empty: %s\n", de->d_name);
goto out;
}
ret = 0;
out:
close_mountpoint(fdir);
return ret;
}
static struct fstype fstypes[] = {
{ "unsupported" },
{ "proc" },
{ "sysfs" },
{ "devtmpfs" },
{ "binfmt_misc", binfmt_misc_dump },
};
struct fstype *find_fstype_by_name(char *fst)
......
......@@ -78,6 +78,11 @@ done:
fail("Can't mount proc");
return 1;
}
if (mount("none", MPTS_ROOT"/kernel/sys/fs/binfmt_misc",
"binfmt_misc", 0, "") < 0) {
fail("Can't mount proc");
return 1;
}
fd = open(MPTS_ROOT"/kernel/meminfo", O_RDONLY);
if (fd == -1)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment