summaryrefslogtreecommitdiffstats
path: root/lib/libzfs
diff options
context:
space:
mode:
authorLOLi <[email protected]>2017-08-21 18:31:54 +0200
committerTony Hutter <[email protected]>2017-08-21 16:46:55 -0700
commit4810a108e889cf18ee7151d99e63644a2d330d0a (patch)
treec4d5a7aee324d1bfbd2b225bdf13749952867105 /lib/libzfs
parentae5b4a05fff84cfb4facab1037bdb725f1b30bc6 (diff)
Disable mount(8) canonical paths in do_mount()
By default the mount(8) command, as invoked by 'zfs mount', will try to resolve any path parameter in its canonical form: this could lead to mount failures when the cwd contains a symlink having the same name of the dataset being mounted. Fix this by explicitly disabling mount(8) path canonicalization. Reviewed-by: George Melikov <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: loli10K <[email protected]> Closes #1791 Closes #6429 Closes #6437
Diffstat (limited to 'lib/libzfs')
-rw-r--r--lib/libzfs/libzfs_mount.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/libzfs/libzfs_mount.c b/lib/libzfs/libzfs_mount.c
index a66278627..dd1617d64 100644
--- a/lib/libzfs/libzfs_mount.c
+++ b/lib/libzfs/libzfs_mount.c
@@ -344,8 +344,9 @@ zfs_is_mountable(zfs_handle_t *zhp, char *buf, size_t buflen,
static int
do_mount(const char *src, const char *mntpt, char *opts)
{
- char *argv[8] = {
+ char *argv[9] = {
"/bin/mount",
+ "--no-canonicalize",
"-t", MNTTYPE_ZFS,
"-o", opts,
(char *)src,