[CRIU] [PATCH 3/6] mnt: add a sub-id to print_ns_root
Andrei Vagin
avagin at openvz.org
Wed Sep 21 23:16:38 PDT 2016
From: Andrei Vagin <avagin at virtuozzo.com>
It will be used to handle overmounts
Signed-off-by: Andrei Vagin <avagin at virtuozzo.com>
---
criu/mount.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/criu/mount.c b/criu/mount.c
index c2506cb..6717b96 100644
--- a/criu/mount.c
+++ b/criu/mount.c
@@ -3013,9 +3013,9 @@ void mnt_entry_free(struct mount_info *mi)
* Helper for getting a path to where the namespace's root
* is re-constructed.
*/
-static inline int print_ns_root(struct ns_id *ns, char *buf, int bs)
+static inline int print_ns_root(struct ns_id *ns, int remap_id, char *buf, int bs)
{
- return snprintf(buf, bs, "%s/%d", mnt_roots, ns->id);
+ return snprintf(buf, bs, "%s/%d-%010d", mnt_roots, ns->id, remap_id);
}
static int create_mnt_roots(void)
@@ -3160,7 +3160,7 @@ static int collect_mnt_from_image(struct mount_info **pms, struct ns_id *nsid)
return -1;
if (nsid->type == NS_OTHER)
- root_len = print_ns_root(nsid, root, sizeof(root));
+ root_len = print_ns_root(nsid, 0, root, sizeof(root));
pr_debug("Reading mountpoint images (id %d pid %d)\n",
nsid->id, (int)nsid->ns_pid);
@@ -3281,7 +3281,7 @@ int rst_get_mnt_root(int mnt_id, char *path, int plen)
return -1;
if (m->nsid->type == NS_OTHER)
- return print_ns_root(m->nsid, path, plen);
+ return print_ns_root(m->nsid, 0, path, plen);
rroot:
path[0] = '/';
@@ -3401,7 +3401,7 @@ static int populate_roots_yard(void)
if (nsid->nd != &mnt_ns_desc)
continue;
- print_ns_root(nsid, path, sizeof(path));
+ print_ns_root(nsid, 0, path, sizeof(path));
if (mkdir(path, 0600)) {
pr_perror("Unable to create %s", path);
return -1;
@@ -3693,7 +3693,7 @@ int prepare_mnt_ns(void)
/* Set its root */
path[0] = '/';
- print_ns_root(nsid, path + 1, sizeof(path) - 1);
+ print_ns_root(nsid, 0, path + 1, sizeof(path) - 1);
if (cr_pivot_root(path))
goto err;
--
2.7.4
More information about the CRIU
mailing list