[CRIU] [PATCH 1/7] mount: Split reading images and populating the ns

Pavel Emelyanov xemul at parallels.com
Wed Dec 25 04:53:27 PST 2013


We will need images at hands while we do pivot_root (see further patches),
so prepare the images reading routine.

Signed-off-by: Pavel Emelyanov <xemul at parallels.com>
---
 mount.c | 29 ++++++++++++++++++++---------
 1 file changed, 20 insertions(+), 9 deletions(-)

diff --git a/mount.c b/mount.c
index 9eeb908..fce0554 100644
--- a/mount.c
+++ b/mount.c
@@ -1209,7 +1209,7 @@ static void free_mounts(void)
 	}
 }
 
-static int populate_mnt_ns(int ns_pid)
+static int read_mnt_ns_img(int ns_pid)
 {
 	MntEntry *me = NULL;
 	int img, ret;
@@ -1277,15 +1277,8 @@ static int populate_mnt_ns(int ns_pid)
 	mntinfo_tree = NULL;
 	mntinfo = pms;
 
-	pms = mnt_build_tree(pms);
-	if (!pms)
-		return -1;
-
-	if (validate_mounts(pms))
-		return -1;
+	return 0;
 
-	mntinfo_tree = pms;
-	return mnt_tree_for_each(pms, do_mount_one);
 err:
 	while (pms) {
 		struct mount_info *pm = pms;
@@ -1296,6 +1289,24 @@ err:
 	return -1;
 }
 
+static int populate_mnt_ns(int ns_pid)
+{
+	struct mount_info *pms;
+
+	if (read_mnt_ns_img(ns_pid))
+		return -1;
+
+	pms = mnt_build_tree(mntinfo);
+	if (!pms)
+		return -1;
+
+	if (validate_mounts(pms))
+		return -1;
+
+	mntinfo_tree = pms;
+	return mnt_tree_for_each(pms, do_mount_one);
+}
+
 int prepare_mnt_ns(int ns_pid)
 {
 	int ret;
-- 
1.8.3.1


More information about the CRIU mailing list