Commit 9b3189fe authored by Pavel Emelyanov's avatar Pavel Emelyanov

util: Add make_yard helper

Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent c5054f95
...@@ -1157,15 +1157,8 @@ static int prepare_cgroup_sfd(CgroupEntry *ce) ...@@ -1157,15 +1157,8 @@ static int prepare_cgroup_sfd(CgroupEntry *ce)
return -1; return -1;
} }
if (mount("none", cg_yard, "tmpfs", 0, NULL)) { if (make_yard(cg_yard))
pr_perror("Can't mount tmpfs in cgyard");
goto err; goto err;
}
if (mount("none", cg_yard, NULL, MS_PRIVATE, NULL)) {
pr_perror("Can't make cgyard private");
goto err;
}
pr_debug("Opening %s as cg yard\n", cg_yard); pr_debug("Opening %s as cg yard\n", cg_yard);
i = open(cg_yard, O_DIRECTORY); i = open(cg_yard, O_DIRECTORY);
......
...@@ -261,4 +261,6 @@ void split(char *str, char token, char ***out, int *n); ...@@ -261,4 +261,6 @@ void split(char *str, char token, char ***out, int *n);
int fd_has_data(int lfd); int fd_has_data(int lfd);
int make_yard(char *path);
#endif /* __CR_UTIL_H__ */ #endif /* __CR_UTIL_H__ */
...@@ -2647,11 +2647,7 @@ static int prepare_roots_yard(void) ...@@ -2647,11 +2647,7 @@ static int prepare_roots_yard(void)
if (mnt_roots == NULL) if (mnt_roots == NULL)
return 0; return 0;
if (mount("none", mnt_roots, "tmpfs", 0, NULL)) { if (make_yard(mnt_roots))
pr_perror("Unable to mount tmpfs in %s", mnt_roots);
return -1;
}
if (mount("none", mnt_roots, NULL, MS_PRIVATE, NULL))
return -1; return -1;
for (nsid = ns_ids; nsid != NULL; nsid = nsid->next) { for (nsid = ns_ids; nsid != NULL; nsid = nsid->next) {
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
#include <sys/sendfile.h> #include <sys/sendfile.h>
#include <fcntl.h> #include <fcntl.h>
#include <poll.h> #include <poll.h>
#include <sys/mount.h>
#include <sys/param.h> #include <sys/param.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
...@@ -845,3 +845,18 @@ int fd_has_data(int lfd) ...@@ -845,3 +845,18 @@ int fd_has_data(int lfd)
return ret; return ret;
} }
int make_yard(char *path)
{
if (mount("none", path, "tmpfs", 0, NULL)) {
pr_perror("Unable to mount tmpfs in %s", path);
return -1;
}
if (mount("none", path, NULL, MS_PRIVATE, NULL)) {
pr_perror("Unable to mark yard as private");
return -1;
}
return 0;
}
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