summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorilovezfs <[email protected]>2014-04-29 22:47:14 -0700
committerBrian Behlendorf <[email protected]>2014-04-30 15:52:01 -0700
commit78597769b488633c9b61ded8ede0c8790b849b75 (patch)
tree7ac0b36d56b8bcc5ee422f67ae660db4ae22f4a8
parent17584980b9ca6fc1aecb520ffc520cd306624854 (diff)
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 <[email protected]> Signed-off-by: ilovezfs <[email protected]> Closes #2284
-rw-r--r--lib/libzfs/libzfs_mount.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/libzfs/libzfs_mount.c b/lib/libzfs/libzfs_mount.c
index b85c5d04f..83396c402 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) {