ZFS canmount=on (from noauto) on mounted datasets
Bryan Drewery
bryan at shatow.net
Wed May 2 02:30:10 UTC 2012
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
What am I missing here? On 9-RELEASE. I am unable to change 'canmount'
from 'noauto' to 'on', on an already-auto-mounted dataset.
# mount|grep "/var/log"
zroot/ROOT/freebsd90/var/log on /var/log (zfs, local, noatime, noexec,
nosuid, nfsv4acls)
# zfs get -H -o value mounted zroot/ROOT/freebsd90/var/log
yes
# zfs get -H -o value canmount zroot/ROOT/freebsd90/var/log
noauto
# zfs set canmount=on zroot/ROOT/freebsd90/var/log
cannot unmount '/var/log': Device busy
^^^^
I don't see any reference in zfs(1M) to 'canmount' causing automatically
causing a [re]mount. This is understandable for 'mountpoint' of course.
It seems zfs_prop_set() in libzfs_changelist is doing this by calling
changelist_prefix(), as long as not using 'noauto', which does a remount.
The comments for changelist_prop() indicate it's for changing
'mountpoint', which makes sense. Is this being incorrectly called in
zfs_prop_set() for 'canmount=on/off'?
The HEAD code looks to be prone to this as well in zfs_prop_set().
Code in question:
/*
* If the dataset's canmount property is being set to noauto,
* 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));
if (do_prefix && (ret = changelist_prefix(cl)) != 0)
goto error;
Regards,
Bryan Drewery
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQIcBAEBAgAGBQJPoJwbAAoJEG54KsA8mwz5qeUP/3QKNRZ2cg2n9uf6+zxf3Shi
FQiUqJEiMGJ4UEWFUOpgJM1KIOT4ms9L64v5DozPrlnxVpFiHUEHI2PcOS1GzDue
mPX7yTb87OXut263vp5EIYZUo/m03lbVH+Rkd01NTUipgXJWZNF8ShruekjjiPVN
tvou0XyigqMScyrJ83DzUE0thpEvsDJ/8AoubhWw3p6SpgRLcdcAeDLVALazQRxB
+vILmLtlTH3mBSXWDRLAtALKWJl4ewVDYNP8YhsDVhiCVP7vkc5C3pNyh+cbDHhH
h1tKv3mArAiYMxOFHIu9Z/SkO9cfDqH25k2ezv8/x2QOgrqPQumERP3v9g1FxTc5
0KJ+ZkDQTeTiPtmkLDZ+jfl6CelgI9TvOAsR9ftQzeKZHMDWWNg5jpMBkchN3+YC
wI3T/ETC581bG+eLIgm2+lBhDnf/cJBdkf6riW2hqvwv2KqjENel4WvQ13fe+n3/
kGRTWV5PrhRIOdMpjhiB4EV357n3HddGVhlt0aTmxQk/XoNxdJZufWU1Chi1+QB9
xsh1jHoce87kOb2TSmrbVROqoCPDng9ZgFV12crlk07MV8fEXRuSFPFA851uR2/P
QPc96/0B/YZI1GUvWa8ru921fs0slzVvayM7strgb2jRQCFKvgN6CjalPn9SiMSH
EZmhSUImjIOMN2225Wr9
=dxSV
-----END PGP SIGNATURE-----
More information about the freebsd-fs
mailing list