mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 00:32:25 -04:00
6428 set canmount=off on unmounted filesystem tries to unmount children
illumos/illumos-gate@c079fa4d20
c079fa4d20
https://www.illumos.org/issues/6428
Scenario:
$ zfs create rpool/p
$ zfs set canmount=noauto rpool/p
$ zfs umount rpool/p
$ zfs create rpool/p/c
$ zfs get -r mounted,canmount rpool/p
NAME PROPERTY VALUE SOURCE
rpool/p mounted no -
rpool/p canmount noauto local
rpool/p/c mounted yes -
rpool/p/c canmount on default
In another shell ensure that rpool/p/c is in use, for example:
$ cd /rpool/p/c
Then:
$ zfs set canmount=off rpool/p
cannot unmount '/rpool/p/c': Device busy
But there is no reason to try to unmount rpool/p/c in this scenario.
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Approved by: Gordon Ross <gordon.w.ross@gmail.com>
Author: Andriy Gapon <andriy.gapon@clusterhq.com>
This commit is contained in:
parent
7f74889d89
commit
5041986419
1 changed files with 3 additions and 2 deletions
|
|
@ -1597,8 +1597,9 @@ zfs_prop_set_list(zfs_handle_t *zhp, nvlist_t *props)
|
|||
* its canmount property to 'on' or 'noauto'. We only use
|
||||
* the changelist logic to unmount when setting canmount=off.
|
||||
*/
|
||||
if (!(prop == ZFS_PROP_CANMOUNT &&
|
||||
fnvpair_value_uint64(elem) != ZFS_CANMOUNT_OFF)) {
|
||||
if (prop != ZFS_PROP_CANMOUNT ||
|
||||
(fnvpair_value_uint64(elem) == ZFS_CANMOUNT_OFF &&
|
||||
zfs_is_mounted(zhp, NULL))) {
|
||||
cls[cl_idx] = changelist_gather(zhp, prop, 0, 0);
|
||||
if (cls[cl_idx] == NULL)
|
||||
goto error;
|
||||
|
|
|
|||
Loading…
Reference in a new issue