From 78597769b488633c9b61ded8ede0c8790b849b75 Mon Sep 17 00:00:00 2001 From: ilovezfs Date: Tue, 29 Apr 2014 22:47:14 -0700 Subject: [PATCH] Fill in mountpoint buffer before using it in errors zfs_is_mountable() fills in the mountpoint buffer, so, as in upstream, it needs to have been called before the mountpoint buffer can be used in error messages. In particular, return (zfs_error_fmt(hdl, EZFS_MOUNTFAILED, dgettext(TEXT_DOMAIN, "cannot mount '%s'"), mountpoint)); should not come before the call to zfs_is_mountable(). Signed-off-by: Brian Behlendorf Signed-off-by: ilovezfs Closes #2284 --- lib/libzfs/libzfs_mount.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/libzfs/libzfs_mount.c b/lib/libzfs/libzfs_mount.c index b85c5d04ff..83396c4026 100644 --- a/lib/libzfs/libzfs_mount.c +++ b/lib/libzfs/libzfs_mount.c @@ -405,6 +405,9 @@ zfs_mount(zfs_handle_t *zhp, const char *options, int flags) if (zpool_get_prop_int(zhp->zpool_hdl, ZPOOL_PROP_READONLY, NULL)) (void) strlcat(mntopts, "," MNTOPT_RO, sizeof (mntopts)); + if (!zfs_is_mountable(zhp, mountpoint, sizeof (mountpoint), NULL)) + return (0); + /* * Append default mount options which apply to the mount point. * This is done because under Linux (unlike Solaris) multiple mount @@ -426,9 +429,6 @@ zfs_mount(zfs_handle_t *zhp, const char *options, int flags) */ strlcat(mntopts, "," MNTOPT_ZFSUTIL, sizeof (mntopts)); - if (!zfs_is_mountable(zhp, mountpoint, sizeof (mountpoint), NULL)) - return (0); - /* Create the directory if it doesn't already exist */ if (lstat(mountpoint, &buf) != 0) { if (mkdirp(mountpoint, 0755) != 0) {