[CRIU] [PATCH 4/9] mounts: enumirate mounts bellow specified element
Andrey Vagin
avagin at openvz.org
Wed Jul 24 04:10:18 EDT 2013
Signed-off-by: Andrey Vagin <avagin at openvz.org>
---
mount.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/mount.c b/mount.c
index b84d63f..11358af 100644
--- a/mount.c
+++ b/mount.c
@@ -510,7 +510,9 @@ int dump_mnt_ns(int ns_pid, struct cr_fdset *fdset)
return 0;
}
-#define MNT_TREE_WALK(_mi, _el, _fn_f, _fn_r) do { \
+#define MNT_TREE_WALK(_r, _el, _fn_f, _fn_r) do { \
+ struct mount_info *_mi = _r; \
+ \
while (1) { \
if (_fn_f(_mi)) \
return -1; \
@@ -522,8 +524,8 @@ int dump_mnt_ns(int ns_pid, struct cr_fdset *fdset)
up: \
if (_fn_r(_mi)) \
return -1; \
- if (_mi->parent == NULL) \
- return 0; \
+ if (_mi == _r) \
+ break; \
if (_mi->siblings._el == &_mi->parent->children) { \
_mi = _mi->parent; \
goto up; \
@@ -540,12 +542,16 @@ static int mnt_tree_for_each(struct mount_info *m,
int (*fn)(struct mount_info *))
{
MNT_TREE_WALK(m, next, fn, MNT_WALK_NONE);
+
+ return 0;
}
static int mnt_tree_for_each_reverse(struct mount_info *m,
int (*fn)(struct mount_info *))
{
MNT_TREE_WALK(m, prev, MNT_WALK_NONE, fn);
+
+ return 0;
}
static char *resolve_source(struct mount_info *mi)
--
1.8.3.1
More information about the CRIU
mailing list