From cddd2eaa27c0c35b1a3bfbe7f76a1c7c1ea46517 Mon Sep 17 00:00:00 2001 From: Vaclav Dolezal Date: Wed, 11 Apr 2018 15:52:52 +0200 Subject: libmount: switch namespace when appropriate Signed-off-by: Vaclav Dolezal --- libmount/src/context_loopdev.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'libmount/src/context_loopdev.c') diff --git a/libmount/src/context_loopdev.c b/libmount/src/context_loopdev.c index b1608dd45..05ff71ae7 100644 --- a/libmount/src/context_loopdev.c +++ b/libmount/src/context_loopdev.c @@ -89,6 +89,7 @@ is_mounted_same_loopfile(struct libmnt_context *cxt, struct libmnt_cache *cache; const char *bf; int rc = 0; + struct libmnt_ns *ns_old; assert(cxt); assert(cxt->fs); @@ -97,6 +98,10 @@ is_mounted_same_loopfile(struct libmnt_context *cxt, if (mnt_context_get_mtab(cxt, &tb)) return 0; + ns_old = mnt_context_switch_target_ns(cxt); + if (!ns_old) + return -MNT_ERR_NAMESPACE; + DBG(LOOP, ul_debugobj(cxt, "checking if %s mounted on %s", backing_file, target)); @@ -132,6 +137,9 @@ is_mounted_same_loopfile(struct libmnt_context *cxt, } if (rc) DBG(LOOP, ul_debugobj(cxt, "%s already mounted", backing_file)); + + if (!mnt_context_switch_ns(cxt, ns_old)) + return -MNT_ERR_NAMESPACE; return rc; } -- cgit v1.2.3-55-g7522