From nobody@FreeBSD.org  Thu Aug  9 18:57:27 2007
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2844E16A417
	for <freebsd-gnats-submit@FreeBSD.org>; Thu,  9 Aug 2007 18:57:27 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 184CD13C465
	for <freebsd-gnats-submit@FreeBSD.org>; Thu,  9 Aug 2007 18:57:27 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.1/8.14.1) with ESMTP id l79IvQUS050628
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 9 Aug 2007 18:57:26 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.1/8.14.1/Submit) id l79IvQ7d050627;
	Thu, 9 Aug 2007 18:57:26 GMT
	(envelope-from nobody)
Message-Id: <200708091857.l79IvQ7d050627@www.freebsd.org>
Date: Thu, 9 Aug 2007 18:57:26 GMT
From: Scot Hetzel <swhetzel@gmail.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: mount gets into a state where it won't set/unset ZFS properties (atime, exec, setuid)

>Number:         115361
>Category:       bin
>Synopsis:       [zfs] mount(8) gets into a state where it won't set/unset ZFS properties (atime, exec, setuid)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-fs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Aug 09 19:00:13 GMT 2007
>Closed-Date:    
>Last-Modified:  Sat Nov  9 17:50:00 UTC 2013
>Originator:     Scot Hetzel
>Release:        7.0-CURRENT
>Organization:
>Environment:
FreeBSD hp010.hetzel.org 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Wed Aug
8 10:38:34 CDT 2007
root@hp010.hetzel.org:/usr/src/7x/sys/amd64/compile/GENERIC.debug
amd64
>Description:
When using mount to change the mount point options to noatime,noexec,nosuid it will make the change on the mount point.  Using zfs get, it will show that atime, and exec are off, but setuid is still on.  But then you are unable to unset these options with mount.  The atime, noexec, setuid properties can be changed by using either zfs inherit or zfs set.  After you have reset them to their defaults, mount will no longer allow these settings to be changed.  The only way to set them with mount is to umount the filesystem and remount it.
>How-To-Repeat:
hp010# umount /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default

hp010# zfs mount -a
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)

hp010# mount -u -o noexec,nosuid /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      off                           temporary
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local,
noexec, nosuid)

Why doesn't the setuid property change to 'temporary' for
rootpool/usr/ports/distfiles?

hp010# mount -u -o exec,suid /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      off                           temporary
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local,
noexec, nosuid)

mount can't get rid of these options.

hp010# mount -u -o noatime /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     off                           temporary
rootpool/usr/ports/distfiles  exec      off                           temporary
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local,
noatime, noexec, nosuid)

hp010# mount -u -o atime /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     off                           temporary
rootpool/usr/ports/distfiles  exec      off                           temporary
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local,
noatime, noexec, nosuid)

Same problem with getting rid of noatime.  I would have expected mount
to be able to be able to change the zfs properties of atime, exec back
to on.

hp010# zfs inherit -r atime rootpool/usr/ports/distfiles
hp010# zfs inherit -r exec rootpool/usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, nosuid)


hp010# zfs set setuid=off rootpool/usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    off                           local
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, nosuid)

hp010# zfs inherit -r setuid rootpool/usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)

We have now set everything back to the default mount options using 'zfs inherit'

hp010# mount -u -o noatime,noexec,nosuid /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, nosuid)

Now mount can't set noatime or noexec.

hp010# zfs inherit -r setuid rootpool/usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)

Back to the defaults again.

This last part gets a bit strange, without umounting
/usr/ports/distfiles, I tried the following:

hp010# mount -u -o nosuid /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, nosuid)
hp010# zfs set setuid=off rootpool/usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    off                           local
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, nosuid)
hp010# zfs inherit -r setuid rootpool/usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)
hp010# mount -u -o noatime,noexec,nosuid /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      off                           temporary
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local,
noexec, nosuid)
hp010# zfs inherit -r setuid rootpool/usr/ports/distfiles
hp010# zfs inherit -r exec rootpool/usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)
hp010# mount -u -o noatime,noexec,nosuid /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      off                           temporary
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local,
noexec, nosuid)

It won't set noatime when noexec and nosuid are specified.

hp010# mount -u -o noatime /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, nosuid)

Now it removed noexec, and didn't set noatime.

hp010# zfs inherit -r setuid rootpool/usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)

Lets try setting noatime again:

hp010# mount -u -o noatime /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, nosuid)

mount shows nosuid.  Lets unset if with zfs inherit:

hp010# zfs inherit -r setuid rootpool/usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)

nosuid is gone, lets see if we can now set noatime:

hp010# mount -u -o noatime /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, nosuid)

Again mount is showing nosuid:

hp010# mount -u -o nonoatime /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, nosuid)
hp010# mount -u -o nonosuid /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, nosuid)

Try nonoatime and nonosuid, but mount still showing nosuid.  Using zfs
inherit gets rid of nosuid:

hp010# zfs inherit -r setuid rootpool/usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)

Give up, and umount the filesystem:

hp010# umount /usr/ports/distfiles
hp010# zfs mount -a
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)
hp010# mount -u -o noatime /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     off                           temporary
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, noatime)

We can now set noatime, try nonoatime to unset it:

hp010# mount -u -o nonoatime /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     off                           temporary
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, noatime)

That didn't work, does atime work:

hp010# mount -u -o atime /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     off                           temporary
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, noatime)

Reset atime to defaults with zfs inherit:

hp010# zfs inherit -r atime rootpool/usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)

Does nonoatime have any side efects now:

hp010# mount -u -o nonoatime /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)

No side effect, lets try setting noatime:

hp010# mount -u -o noatime /usr/ports/distfiles
hp010# zfs get atime,exec,setuid rootpool/usr/ports/distfiles ; mount
| grep distfiles
NAME                          PROPERTY  VALUE                         SOURCE
rootpool/usr/ports/distfiles  atime     on                            default
rootpool/usr/ports/distfiles  exec      on                            default
rootpool/usr/ports/distfiles  setuid    on                            default
rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)
hp010#

Now mount can't set noatime.
>Fix:


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->pjd 
Responsible-Changed-By: pjd 
Responsible-Changed-When: Fri Aug 10 06:34:01 UTC 2007 
Responsible-Changed-Why:  
I'll take this one. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=115361 

From: "Scot Hetzel" <swhetzel@gmail.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc:  
Subject: Re: bin/115361: mount gets into a state where it won't set/unset ZFS properties (atime, exec, setuid)
Date: Thu, 23 Aug 2007 14:41:29 -0500

 ------=_Part_68708_2464392.1187898089229
 Content-Type: text/plain; charset=ISO-8859-1
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline
 
 Attached is a test program for setting/unsetting ZFS mount options via mount.
 
 Scot
 
 -- 
 DISCLAIMER:
 No electrons were mamed while sending this message. Only slightly bruised.
 
 ------=_Part_68708_2464392.1187898089229
 Content-Type: application/x-shellscript; name="zfstest"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename="zfstest"
 X-Attachment-Id: file0
 
 IyEvYmluL3NoCgpaRlNfRklMRVNZU1RFTT0icm9vdHBvb2wvdXNyL3BvcnRzL2Rpc3RmaWxlcyIK
 WkZTX01PVU5UUE9JTlQ9Ii91c3IvcG9ydHMvZGlzdGZpbGVzIgoKZ2V0X21vdW50KCkKewoJbG9j
 YWwgX3pmc19maWVsZHM9JHsxfQoKCXpmcyBnZXQgJHtfemZzX2ZpZWxkc30gJHtaRlNfRklMRVNZ
 U1RFTX0KCW1vdW50IHwgZ3JlcCAke1pGU19NT1VOVFBPSU5UfQoJZWNobwp9Cgpkb19yZW1vdW50
 KCkKewoJbG9jYWwgX3pmc19maWVsZHM9JHsxfQoKCWVjaG8gIj09PT4gQ3VycmVudCBzZXR0aW5n
 cyBmb3IgJHtaRlNfRklMRVNZU1RFTX0iCgl1bW91bnQgJHtaRlNfTU9VTlRQT0lOVH0KCXpmcyBt
 b3VudCAtYQoJZ2V0X21vdW50ICR7X3pmc19maWVsZHN9Cgp9CgpwcmludF9saW5lKCkKewoJZWNo
 byAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT0iCgllY2hvCn0KCiMKIyBUZXN0IDEKIwp0ZXN0XzEo
 KQp7CglaRlNfRklFTERTPSJhdGltZSxleGVjLHNldHVpZCIKCgllY2hvICJUZXN0IHNldHRpbmcv
 dW5zZXR0aW5nIG9mICR7WkZTX0ZJRUxEU30iCglkb19yZW1vdW50ICR7WkZTX0ZJRUxEU30KCglt
 b3VudCAtdSAtbyBub2V4ZWMsbm9zdWlkICR7WkZTX01PVU5UUE9JTlR9CglnZXRfbW91bnQgJHta
 RlNfRklFTERTfQoKCW1vdW50IC11IC1vIGV4ZWMsc3VpZCAke1pGU19NT1VOVFBPSU5UfQoJZ2V0
 X21vdW50ICR7WkZTX0ZJRUxEU30KCgltb3VudCAtdSAtbyBub2F0aW1lICR7WkZTX01PVU5UUE9J
 TlR9CglnZXRfbW91bnQgJHtaRlNfRklFTERTfQoKCW1vdW50IC11IC1vIGF0aW1lICR7WkZTX01P
 VU5UUE9JTlR9CglnZXRfbW91bnQgJHtaRlNfRklFTERTfQoKCXpmcyBpbmhlcml0IC1yIGF0aW1l
 ICR7WkZTX0ZJTEVTWVNURU19Cgl6ZnMgaW5oZXJpdCAtciBleGVjICR7WkZTX0ZJTEVTWVNURU19
 CglnZXRfbW91bnQgJHtaRlNfRklFTERTfQoKCXpmcyBzZXQgc2V0dWlkPW9mZiAke1pGU19GSUxF
 U1lTVEVNfQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxEU30KCgl6ZnMgaW5oZXJpdCAtciBzZXR1aWQg
 JHtaRlNfRklMRVNZU1RFTX0KCWdldF9tb3VudCAke1pGU19GSUVMRFN9CgoJbW91bnQgLXUgLW8g
 bm9hdGltZSxub2V4ZWMsbm9zdWlkICR7WkZTX01PVU5UUE9JTlR9CglnZXRfbW91bnQgJHtaRlNf
 RklFTERTfQoKCXpmcyBpbmhlcml0IC1yIHNldHVpZCAke1pGU19GSUxFU1lTVEVNfQoJZ2V0X21v
 dW50ICR7WkZTX0ZJRUxEU30KCgltb3VudCAtdSAtbyBub3N1aWQgJHtaRlNfTU9VTlRQT0lOVH0K
 CWdldF9tb3VudCAke1pGU19GSUVMRFN9CgoJemZzIHNldCBzZXR1aWQ9b2ZmICR7WkZTX0ZJTEVT
 WVNURU19CglnZXRfbW91bnQgJHtaRlNfRklFTERTfQoKCXpmcyBpbmhlcml0IC1yIHNldHVpZCAk
 e1pGU19GSUxFU1lTVEVNfQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxEU30KCgltb3VudCAtdSAtbyBu
 b2F0aW1lLG5vZXhlYyxub3N1aWQgJHtaRlNfTU9VTlRQT0lOVH0KCWdldF9tb3VudCAke1pGU19G
 SUVMRFN9CgoJemZzIGluaGVyaXQgLXIgc2V0dWlkICR7WkZTX0ZJTEVTWVNURU19Cgl6ZnMgaW5o
 ZXJpdCAtciBleGVjICR7WkZTX0ZJTEVTWVNURU19CglnZXRfbW91bnQgJHtaRlNfRklFTERTfQoK
 CW1vdW50IC11IC1vIG5vYXRpbWUsbm9leGVjLG5vc3VpZCAke1pGU19NT1VOVFBPSU5UfQoJZ2V0
 X21vdW50ICR7WkZTX0ZJRUxEU30KCgltb3VudCAtdSAtbyBub2F0aW1lICR7WkZTX01PVU5UUE9J
 TlR9CglnZXRfbW91bnQgJHtaRlNfRklFTERTfQoKCXpmcyBpbmhlcml0IC1yIHNldHVpZCAke1pG
 U19GSUxFU1lTVEVNfQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxEU30KCgltb3VudCAtdSAtbyBub2F0
 aW1lICR7WkZTX01PVU5UUE9JTlR9CglnZXRfbW91bnQgJHtaRlNfRklFTERTfQoKCXpmcyBpbmhl
 cml0IC1yIHNldHVpZCAke1pGU19GSUxFU1lTVEVNfQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxEU30K
 Cgltb3VudCAtdSAtbyBub2F0aW1lICR7WkZTX01PVU5UUE9JTlR9CglnZXRfbW91bnQgJHtaRlNf
 RklFTERTfQoKCW1vdW50IC11IC1vIG5vbm9hdGltZSAke1pGU19NT1VOVFBPSU5UfQoJZ2V0X21v
 dW50ICR7WkZTX0ZJRUxEU30KCgltb3VudCAtdSAtbyBub25vc3VpZCAke1pGU19NT1VOVFBPSU5U
 fQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxEU30KCgl6ZnMgaW5oZXJpdCAtciBzZXR1aWQgJHtaRlNf
 RklMRVNZU1RFTX0KCWdldF9tb3VudCAke1pGU19GSUVMRFN9CgoJcHJpbnRfbGluZQp9CgoKIwoj
 IFRlc3QgYXRpbWUKIwp0ZXN0X2F0aW1lKCkKewoJWkZTX0ZJRUxEUz0iYXRpbWUiCgoJZWNobyAi
 VGVzdCBzZXR0aW5nL3Vuc2V0dGluZyBvZiAke1pGU19GSUVMRFN9IgoJZG9fcmVtb3VudCAke1pG
 U19GSUVMRFN9CgoJZWNobyAiPT09PiBtb3VudCAtdSAtbyBub2F0aW1lICR7WkZTX01PVU5UUE9J
 TlR9IgoJbW91bnQgLXUgLW8gbm9hdGltZSAke1pGU19NT1VOVFBPSU5UfQoJZ2V0X21vdW50ICR7
 WkZTX0ZJRUxEU30KCgllY2hvICI9PT0+IG1vdW50IC11IC1vIG5vbm9hdGltZSAke1pGU19NT1VO
 VFBPSU5UfSIKCW1vdW50IC11IC1vIG5vbm9hdGltZSAke1pGU19NT1VOVFBPSU5UfQoJZ2V0X21v
 dW50ICR7WkZTX0ZJRUxEU30KCgllY2hvICI9PT0+IG1vdW50IC11IC1vIGF0aW1lICR7WkZTX01P
 VU5UUE9JTlR9IgoJaWYgWyBgbW91bnQgfCBncmVwICR7WkZTX01PVU5UUE9JTlR9IHwgZ3JlcCAt
 YyBub2F0aW1lYCBdIDsgdGhlbgoJCWVjaG8gIj09PT09PiBub2F0aW1lIGFscmVhZHkgc2V0IgoJ
 ZWxzZQoJCWVjaG8gIj09PT09PiBzZXR0aW5nIG5vYXRpbWUiCgkJbW91bnQgLXUgLW8gbm9hdGlt
 ZSAke1pGU19NT1VOVFBPSU5UfQoJZmkKCW1vdW50IC11IC1vIGF0aW1lICR7WkZTX01PVU5UUE9J
 TlR9CglnZXRfbW91bnQgJHtaRlNfRklFTERTfQoKCWVjaG8gIj09PT4gemZzIGluaGVyaXQgLXIg
 YXRpbWUgJHtaRlNfRklMRVNZU1RFTX0iCgl6ZnMgaW5oZXJpdCAtciBhdGltZSAke1pGU19GSUxF
 U1lTVEVNfQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxEU30KCgllY2hvICI9PT0+IG1vdW50IC11IC1v
 IG5vbm9hdGltZSAke1pGU19NT1VOVFBPSU5UfSIKCW1vdW50IC11IC1vIG5vbm9hdGltZSAke1pG
 U19NT1VOVFBPSU5UfQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxEU30KCgllY2hvICI9PT0+IG1vdW50
 IC11IC1vIG5vYXRpbWUgJHtaRlNfTU9VTlRQT0lOVH0iCgltb3VudCAtdSAtbyBub2F0aW1lIC91
 c3IvcG9ydHMvZGlzdGZpbGVzCglnZXRfbW91bnQgJHtaRlNfRklFTERTfQoKCXByaW50X2xpbmUK
 fQoKIwojIFRlc3QgZGV2aWNlcwojCnRlc3RfZGV2aWNlcygpCnsKCVpGU19GSUVMRFM9ImRldmlj
 ZXMiCgoJZWNobyAiVGVzdCBzZXR0aW5nL3Vuc2V0dGluZyBvZiAke1pGU19GSUVMRFN9IgoJZG9f
 cmVtb3VudCAke1pGU19GSUVMRFN9CgoJZWNobyAiPT09PiBtb3VudCAtdSAtbyBub2RldmljZXMg
 JHtaRlNfTU9VTlRQT0lOVH0iCgltb3VudCAtdSAtbyBub2RldmljZXMgJHtaRlNfTU9VTlRQT0lO
 VH0KCWdldF9tb3VudCAke1pGU19GSUVMRFN9CgoJZWNobyAiPT09PiBtb3VudCAtdSAtbyBkZXZp
 Y2VzICR7WkZTX01PVU5UUE9JTlR9IgoJbW91bnQgLXUgLW8gZGV2aWNlcyAke1pGU19NT1VOVFBP
 SU5UfQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxEU30KCglwcmludF9saW5lCn0KCiMKIyBUZXN0IGV4
 ZWMKIwp0ZXN0X2V4ZWMoKQp7CglaRlNfRklFTERTPSJleGVjIgoKCWVjaG8gIlRlc3Qgc2V0dGlu
 Zy91bnNldHRpbmcgb2YgJHtaRlNfRklFTERTfSIKCWRvX3JlbW91bnQgJHtaRlNfRklFTERTfQoK
 CWVjaG8gIj09PT4gbW91bnQgLXUgLW8gbm9leGVjICR7WkZTX01PVU5UUE9JTlR9IgoJbW91bnQg
 LXUgLW8gbm9leGVjICR7WkZTX01PVU5UUE9JTlR9CglnZXRfbW91bnQgJHtaRlNfRklFTERTfQoK
 CWVjaG8gIj09PT4gbW91bnQgLXUgLW8gbm9ub2V4ZWMgJHtaRlNfTU9VTlRQT0lOVH0iCgltb3Vu
 dCAtdSAtbyBub25vZXhlYyAke1pGU19NT1VOVFBPSU5UfQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxE
 U30KCgllY2hvICI9PT0+IG1vdW50IC11IC1vIGV4ZWMgJHtaRlNfTU9VTlRQT0lOVH0iCglpZiBb
 IGBtb3VudCB8IGdyZXAgJHtaRlNfTU9VTlRQT0lOVH0gfCBncmVwIC1jIG5vZXhlY2AgXSA7IHRo
 ZW4KCQllY2hvICI9PT09PT4gbm9leGVjIGFscmVhZHkgc2V0IgoJZWxzZQoJCWVjaG8gIj09PT09
 PiBzZXR0aW5nIG5vZXhlYyIKCQltb3VudCAtdSAtbyBub2V4ZWMgJHtaRlNfTU9VTlRQT0lOVH0K
 CWZpCgltb3VudCAtdSAtbyBleGVjICR7WkZTX01PVU5UUE9JTlR9CglnZXRfbW91bnQgJHtaRlNf
 RklFTERTfQoKCXByaW50X2xpbmUKfQoKIwojIFRlc3QgcmVhZG9ubHkKIwp0ZXN0X3JlYWRvbmx5
 KCkKewoJWkZTX0ZJRUxEUz0icmVhZG9ubHkiCgoJZWNobyAiVGVzdCBzZXR0aW5nL3Vuc2V0dGlu
 ZyBvZiAke1pGU19GSUVMRFN9IgoJZG9fcmVtb3VudCAke1pGU19GSUVMRFN9CgoJZWNobyAiPT09
 PiBtb3VudCAtdSAtbyBybyAke1pGU19NT1VOVFBPSU5UfSIKCW1vdW50IC11IC1vIHJvICR7WkZT
 X01PVU5UUE9JTlR9CglnZXRfbW91bnQgJHtaRlNfRklFTERTfQoKCWVjaG8gIj09PT4gbW91bnQg
 LXUgLW8gbm9ybyAke1pGU19NT1VOVFBPSU5UfSIKCW1vdW50IC11IC1vIHJ3ICR7WkZTX01PVU5U
 UE9JTlR9CglnZXRfbW91bnQgJHtaRlNfRklFTERTfQoKCWVjaG8gIj09PT4gbW91bnQgLXUgLW8g
 cncgJHtaRlNfTU9VTlRQT0lOVH0iCglpZiBbIGBtb3VudCB8IGdyZXAgJHtaRlNfTU9VTlRQT0lO
 VH0gfCBncmVwIC1jIHJlYWQtb25seWAgXSA7IHRoZW4KCQllY2hvICI9PT09PT4gcm8gYWxyZWFk
 eSBzZXQiCgllbHNlCgkJZWNobyAiPT09PT0+IHNldHRpbmcgcm8iCgkJbW91bnQgLXUgLW8gcm8g
 JHtaRlNfTU9VTlRQT0lOVH0KCWZpCgltb3VudCAtdSAtbyBydyAke1pGU19NT1VOVFBPSU5UfQoJ
 Z2V0X21vdW50ICR7WkZTX0ZJRUxEU30KCglwcmludF9saW5lCn0KCiMKIyBUZXN0IHNldHVpZAoj
 CnRlc3Rfc2V0dWlkKCkKewoJWkZTX0ZJRUxEUz0ic2V0dWlkIgoKCWVjaG8gIlRlc3Qgc2V0dGlu
 Zy91bnNldHRpbmcgb2YgJHtaRlNfRklFTERTfSIKCWRvX3JlbW91bnQgJHtaRlNfRklFTERTfQoK
 CWVjaG8gIj09PT4gbW91bnQgLXUgLW8gbm9zZXR1aWQgJHtaRlNfTU9VTlRQT0lOVH0iCgltb3Vu
 dCAtdSAtbyBub3NldHVpZCAke1pGU19NT1VOVFBPSU5UfQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxE
 U30KCgllY2hvICI9PT0+IG1vdW50IC11IC1vIHNldHVpZCAke1pGU19NT1VOVFBPSU5UfSIKCW1v
 dW50IC11IC1vIHNldHVpZCAke1pGU19NT1VOVFBPSU5UfQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxE
 U30KCglwcmludF9saW5lCn0KCiMKIyBUZXN0IHN1aWQKIwp0ZXN0X3N1aWQoKQp7CglaRlNfRklF
 TERTPSJkZXZpY2VzLHNldHVpZCIKCgllY2hvICJUZXN0IHNldHRpbmcvdW5zZXR0aW5nIG9mICR7
 WkZTX0ZJRUxEU30iCglkb19yZW1vdW50ICR7WkZTX0ZJRUxEU30KCgllY2hvICI9PT0+IG1vdW50
 IC11IC1vIG5vc3VpZCAke1pGU19NT1VOVFBPSU5UfSIKCW1vdW50IC11IC1vIG5vc3VpZCAke1pG
 U19NT1VOVFBPSU5UfQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxEU30KCgllY2hvICI9PT0+IG1vdW50
 IC11IC1vIG5vbm9zdWlkICR7WkZTX01PVU5UUE9JTlR9IgoJbW91bnQgLXUgLW8gbm9ub3N1aWQg
 JHtaRlNfTU9VTlRQT0lOVH0KCWdldF9tb3VudCAke1pGU19GSUVMRFN9CgoJZWNobyAiPT09PiBt
 b3VudCAtdSAtbyBzdWlkICR7WkZTX01PVU5UUE9JTlR9IgoJaWYgWyBgbW91bnQgfCBncmVwICR7
 WkZTX01PVU5UUE9JTlR9IHwgZ3JlcCAtYyBub3N1aWRgIF0gOyB0aGVuCgkJZWNobyAiPT09PT0+
 IG5vc3VpZCBhbHJlYWR5IHNldCIKCWVsc2UKCQllY2hvICI9PT09PT4gc2V0dGluZyBub3N1aWQi
 CgkJbW91bnQgLXUgLW8gbm9zdWlkICR7WkZTX01PVU5UUE9JTlR9CglmaQoJbW91bnQgLXUgLW8g
 c3VpZCAke1pGU19NT1VOVFBPSU5UfQoJZ2V0X21vdW50ICR7WkZTX0ZJRUxEU30KCglwcmludF9s
 aW5lCn0KCiMKIyBUZXN0IHhhdHRyCiMKdGVzdF94YXR0cigpCnsKCVpGU19GSUVMRFM9InhhdHRy
 IgoKCWVjaG8gIlRlc3Qgc2V0dGluZy91bnNldHRpbmcgb2YgJHtaRlNfRklFTERTfSIKCWRvX3Jl
 bW91bnQgJHtaRlNfRklFTERTfQoKCWVjaG8gIj09PT4gbW91bnQgLXUgLW8gbm94YXR0ciAke1pG
 U19NT1VOVFBPSU5UfSIKCW1vdW50IC11IC1vIG5veGF0dHIgJHtaRlNfTU9VTlRQT0lOVH0KCWdl
 dF9tb3VudCAke1pGU19GSUVMRFN9CgoJZWNobyAiPT09PiBtb3VudCAtdSAtbyB4YXR0ciAke1pG
 U19NT1VOVFBPSU5UfSIKCW1vdW50IC11IC1vIHhhdHRyICR7WkZTX01PVU5UUE9JTlR9CglnZXRf
 bW91bnQgJHtaRlNfRklFTERTfQoKCXByaW50X2xpbmUKfQoKIwojIFJlc3RvcmUgdG8gZGVmYXVs
 dAojCnJlc3RvcmVfbW91bnQoKQp7CglaRlNfRklFTERTPSJhdGltZSxkZXZpY2VzLGV4ZWMscmVh
 ZG9ubHksc2V0dWlkLHhhdHRyIgoKCWVjaG8gIlJlc3RvcmUgdG8gZGVmYXVsdCBtb3VudCBvcHRp
 b25zIgoJZG9fcmVtb3VudCAke1pGU19GSUVMRFN9Cn0KCiMKIyBNYWluCiMKCnRlc3RfMQp0ZXN0
 X2F0aW1lCnRlc3RfZGV2aWNlcwp0ZXN0X2V4ZWMKdGVzdF9yZWFkb25seQp0ZXN0X3NldHVpZAp0
 ZXN0X3N1aWQKdGVzdF94YXR0cgpyZXN0b3JlX21vdW50Cg==
 ------=_Part_68708_2464392.1187898089229--

From: "Scot Hetzel" <swhetzel@gmail.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc:  
Subject: Re: bin/115361: mount gets into a state where it won't set/unset ZFS properties (atime, exec, setuid)
Date: Fri, 24 Aug 2007 01:40:19 -0500

 On 8/23/07, Scot Hetzel <swhetzel@gmail.com> wrote:
 > Attached is a test program for setting/unsetting ZFS mount options via
 > mount.
 >
 The zfstest program runs the failure case that is shown in this PR, as
 well as testing the following mount options:
 
 ZFS
 PROPERTY               MOUNT OPTION
 atime                      atime, noatime, nononatime
 exec                       exec, noexec, nonoexec
 readonly                 rw, ro, noro
 setuid                     setuid, nosetuid
 xattr (1)                  xattr, noxattr
 
 devices (2)              devices, nodevices
 devices,setuid (3)    suid, nosuid, nonosuid
 
 1. waiting to be implemented in FreeBSD ZFS
 2. not used for FreeBSD ZFS due to devfs (?)
 3. according to zfs(1M) nosuid option is an alias for
 "nodevices,nosetuid", FreeBSD ZFS only turns setuid off when nosuid is
 specified. devices is not turned off due to devfs (?)
 
 I did find another problem, if you use the rw mount option, it mounts
 the filesystem read-only.
 
 hp010# mount -u -o ro /usr/ports/distfiles ; mount | grep dist
 rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local)
 hp010# mount -u -o rw /usr/ports/distfiles ; mount | grep dist
 rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, read-only)
 hp010# mount -u -o ro /usr/ports/distfiles ; mount | grep dist
 rootpool/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, read-only)
 
 Scot
 -- 
 DISCLAIMER:
 No electrons were mamed while sending this message. Only slightly bruised.
Responsible-Changed-From-To: pjd->freebsd-fs 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Thu May 28 22:20:10 UTC 2009 
Responsible-Changed-Why:  
With pjd's permission, reassing ZFS-related PRs to freebsd-fs. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=115361 

From: Martin Matuska <mm@FreeBSD.org>
To: bug-followup@FreeBSD.org, swhetzel@gmail.com
Cc:  
Subject: Re: bin/115361: [zfs] mount(8) gets into a state where it won&#39;t
 set/unset ZFS properties (atime, exec, setuid)
Date: Tue, 11 Oct 2011 09:23:27 +0200

 If there are no objections, I would like to close this PR.
 
 -- 
 Martin Matuska
 FreeBSD committer
 http://blog.vx.sk
 

From: Scot Hetzel <swhetzel@gmail.com>
To: Martin Matuska <mm@freebsd.org>
Cc: bug-followup@freebsd.org
Subject: Re: bin/115361: [zfs] mount(8) gets into a state where it won&#39;t
 set/unset ZFS properties (atime, exec, setuid)
Date: Sat, 9 Nov 2013 11:45:46 -0600

 On Tue, Oct 11, 2011 at 2:23 AM, Martin Matuska <mm@freebsd.org> wrote:
 > If there are no objections, I would like to close this PR.
 >
 > --
 > Martin Matuska
 > FreeBSD committer
 > http://blog.vx.sk
 >
 
 I just ran the zfstest script on:
 
 FreeBSD fbsd10 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r257220: Sun Oct
 27 22:42:08 CDT 2013     root@fbsd10:/usr/obj/usr/src/sys/GENERIC
 i386
 
 The results below shows that mount still can't change devices, setuid
 or xattr attributes on the zfs filesystem (zfs get
 devices,setuid,xattr ${ZFS_FILESYSTEM}).  they should show as off, and
  SOURCE should change to temporary, but they stay at default.
 
 NOTE: change ZFS_FILESYSTEM and ZFS_MOUNTPOINT in the zfstest script
 to the appropriate zfs filesystem and mount point.
 
 ================================================================================
 
 Test setting/unsetting of devices
 
 ===> Current settings for Scratch/ports/distfiles
 NAME                     PROPERTY  VALUE    SOURCE
 Scratch/ports/distfiles  devices   on       default
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, local, nfsv4acls)
 
 ===> mount -u -o nodevices /usr/ports/distfiles
 NAME                     PROPERTY  VALUE    SOURCE
 Scratch/ports/distfiles  devices   on       default <- should be off
 and temporary
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, NFS exported,
 local, nfsv4acls) <- missing nodevices
 
 ===> mount -u -o devices /usr/ports/distfiles
 NAME                     PROPERTY  VALUE    SOURCE
 Scratch/ports/distfiles  devices   on       default
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, NFS exported,
 local, nfsv4acls)
 
 ================================================================================
 
 Test setting/unsetting of setuid
 ===> Current settings for Scratch/ports/distfiles
 NAME                     PROPERTY  VALUE   SOURCE
 Scratch/ports/distfiles  setuid    on      default
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, local, nfsv4acls)
 
 ===> mount -u -o nosetuid /usr/ports/distfiles
 NAME                     PROPERTY  VALUE   SOURCE
 Scratch/ports/distfiles  setuid    on      default <- should be off
 and temporary
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, NFS exported,
 local, nosuid, nfsv4acls)
 
 ===> mount -u -o setuid /usr/ports/distfiles
 NAME                     PROPERTY  VALUE   SOURCE
 Scratch/ports/distfiles  setuid    on      default
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, NFS exported,
 local, nfsv4acls)
 
 ================================================================================
 
 Test setting/unsetting of suid
 ===> Current settings for Scratch/ports/distfiles
 NAME                     PROPERTY  VALUE    SOURCE
 Scratch/ports/distfiles  devices   on       default
 Scratch/ports/distfiles  setuid    on       default
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, local, nfsv4acls)
 
 ===> mount -u -o nosuid /usr/ports/distfiles
 NAME                     PROPERTY  VALUE    SOURCE
 Scratch/ports/distfiles  devices   on       default <- should be off
 and temporary
 Scratch/ports/distfiles  setuid    on       default  <- should be off
 and temporary
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, NFS exported,
 local, nosuid, nfsv4acls) <- missing nodevices
 
 ===> mount -u -o nonosuid /usr/ports/distfiles
 NAME                     PROPERTY  VALUE    SOURCE
 Scratch/ports/distfiles  devices   on       default
 Scratch/ports/distfiles  setuid    on       default
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, NFS exported,
 local, nfsv4acls)
 
 ===> mount -u -o suid /usr/ports/distfiles
 =====> nosuid already set
 NAME                     PROPERTY  VALUE    SOURCE
 Scratch/ports/distfiles  devices   on       default
 Scratch/ports/distfiles  setuid    on       default
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, NFS exported,
 local, nfsv4acls)
 
 ================================================================================
 
 Test setting/unsetting of xattr
 ===> Current settings for Scratch/ports/distfiles
 NAME                     PROPERTY  VALUE  SOURCE
 Scratch/ports/distfiles  xattr     off    temporary
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, local, nfsv4acls)
 
 ===> mount -u -o noxattr /usr/ports/distfiles
 NAME                     PROPERTY  VALUE  SOURCE
 Scratch/ports/distfiles  xattr     off    temporary
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, NFS exported,
 local, nfsv4acls) <- missing noxattr
 
 ===> mount -u -o xattr /usr/ports/distfiles
 NAME                     PROPERTY  VALUE  SOURCE
 Scratch/ports/distfiles  xattr     off    temporary <- should be on and default
 Scratch/ports/distfiles on /usr/ports/distfiles (zfs, NFS exported,
 local, nfsv4acls)
 
 ================================================================================
 
 -- 
 DISCLAIMER:
 
 No electrons were maimed while sending this message. Only slightly bruised.
>Unformatted:
