From owner-freebsd-fs@FreeBSD.ORG  Wed May  2 02:30:10 2012
Return-Path: <owner-freebsd-fs@FreeBSD.ORG>
Delivered-To: freebsd-fs@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 5E5D61065674
	for <freebsd-fs@freebsd.org>; Wed,  2 May 2012 02:30:10 +0000 (UTC)
	(envelope-from bryan@shatow.net)
Received: from secure.xzibition.com (secure.xzibition.com [173.160.118.92])
	by mx1.freebsd.org (Postfix) with ESMTP id F1F558FC0C
	for <freebsd-fs@freebsd.org>; Wed,  2 May 2012 02:30:09 +0000 (UTC)
DomainKey-Signature: a=rsa-sha1; c=nofws; d=shatow.net; h=message-id
	:date:from:mime-version:to:cc:subject:content-type
	:content-transfer-encoding; q=dns; s=sweb; b=JQ/E1/ZYYVVbm0OX/fR
	J8GoDOIJsQE+IXiQfadulLcjtTn6ZghnQCNMxA+01QwezzoPvkd/byhXpcIiEeNL
	AAItObv4Qb0OVN5hQoIuooBPb1Ksz77Tj4XkIK8slqyVUeSbF6YmDfLckOxQNamO
	8jFNT+qDOz2WyyCY6H/H3sV0=
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=shatow.net; h=message-id
	:date:from:mime-version:to:cc:subject:content-type
	:content-transfer-encoding; s=sweb; bh=b72iolp5SW3ue7BkNkK3gi+VH
	APkRJxTywIjk8fHvM4=; b=bJlzCK1Iwd/D6XX9GO2jXBwM+jPkABX/1LT06PTXL
	Yh7NPx5gTLKcl3OiGQRE30CdNFSu/SLhYIIVdS9XM7lPZme4FXlTYcwh1l4w1kjm
	zAS/odQZq9BHfuRJ0vEaXC222eu8NwZugGa1S1vkd1KEOgXL+Z4sy7PEbqYcs4Rm
	tM=
Received: (qmail 22343 invoked from network); 1 May 2012 21:30:08 -0500
Received: from unknown (HELO ?10.10.1.87?) (bryan@shatow.net@10.10.1.87)
	by sweb.xzibition.com with ESMTPA; 1 May 2012 21:30:08 -0500
Message-ID: <4FA09C1C.2090306@shatow.net>
Date: Tue, 01 May 2012 21:29:48 -0500
From: Bryan Drewery <bryan@shatow.net>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:12.0) Gecko/20120420 Thunderbird/12.0
MIME-Version: 1.0
To: freebsd-fs@freebsd.org
X-Enigmail-Version: 1.4.1
OpenPGP: id=3C9B0CF9;
	url=http://www.shatow.net/bryan/bryan.asc
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: vermaden <vermaden@interia.pl>
Subject: ZFS canmount=on (from noauto) on mounted datasets
X-BeenThere: freebsd-fs@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Filesystems <freebsd-fs.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-fs>,
	<mailto:freebsd-fs-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-fs>
List-Post: <mailto:freebsd-fs@freebsd.org>
List-Help: <mailto:freebsd-fs-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-fs>,
	<mailto:freebsd-fs-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 02 May 2012 02:30:10 -0000

-----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-----