summaryrefslogtreecommitdiff
path: root/cddl
diff options
context:
space:
mode:
authorMartin Matuska <mm@FreeBSD.org>2012-06-15 07:38:21 +0000
committerMartin Matuska <mm@FreeBSD.org>2012-06-15 07:38:21 +0000
commit153e430149ed4479fb833482364d2e8a373163f2 (patch)
treefcf8860b9c05e1e94b11fd87f4698305a3575375 /cddl
parentaa0c93a5ca336d242063dc30cbde0a1bc7d04b1e (diff)
downloadsrc-test2-153e430149ed4479fb833482364d2e8a373163f2.tar.gz
src-test2-153e430149ed4479fb833482364d2e8a373163f2.zip
Notes
Diffstat (limited to 'cddl')
-rw-r--r--cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
index fcd43a03c63b..1d81f91f5a35 100644
--- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
+++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
@@ -1485,11 +1485,13 @@ zfs_prop_set(zfs_handle_t *zhp, const char *propname, const char *propval)
/*
* If the dataset's canmount property is being set to noauto,
+ * or being set to on and the dataset is already mounted,
* then we want to prevent unmounting & remounting it.
*/
do_prefix = !((prop == ZFS_PROP_CANMOUNT) &&
(zprop_string_to_index(prop, propval, &idx,
- ZFS_TYPE_DATASET) == 0) && (idx == ZFS_CANMOUNT_NOAUTO));
+ ZFS_TYPE_DATASET) == 0) && (idx == ZFS_CANMOUNT_NOAUTO ||
+ (idx == ZFS_CANMOUNT_ON && zfs_is_mounted(zhp, NULL))));
if (do_prefix && (ret = changelist_prefix(cl)) != 0)
goto error;