diff options
author | ilovezfs <[email protected]> | 2014-04-29 22:47:14 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2014-04-30 15:52:01 -0700 |
commit | 78597769b488633c9b61ded8ede0c8790b849b75 (patch) | |
tree | 7ac0b36d56b8bcc5ee422f67ae660db4ae22f4a8 | |
parent | 17584980b9ca6fc1aecb520ffc520cd306624854 (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.c | 6 |
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) { |