diff options
author | Vaclav Dolezal | 2018-04-11 15:52:52 +0200 |
---|---|---|
committer | Karel Zak | 2018-06-11 16:12:55 +0200 |
commit | cddd2eaa27c0c35b1a3bfbe7f76a1c7c1ea46517 (patch) | |
tree | eebbe85cc140c70e7ddf40a1b1def6d7d7c913dd /libmount/src/context_loopdev.c | |
parent | libmount: support for namespaces for helpers (diff) | |
download | kernel-qcow2-util-linux-cddd2eaa27c0c35b1a3bfbe7f76a1c7c1ea46517.tar.gz kernel-qcow2-util-linux-cddd2eaa27c0c35b1a3bfbe7f76a1c7c1ea46517.tar.xz kernel-qcow2-util-linux-cddd2eaa27c0c35b1a3bfbe7f76a1c7c1ea46517.zip |
libmount: switch namespace when appropriate
Signed-off-by: Vaclav Dolezal <vdolezal@redhat.com>
Diffstat (limited to 'libmount/src/context_loopdev.c')
-rw-r--r-- | libmount/src/context_loopdev.c | 8 |
1 files changed, 8 insertions, 0 deletions
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; } |