While checking out a problem with mount unsetting noatime on a UFS system, I tested mount with both a UFS and ZFS filesystems. The ZFS filesystem had several problems: hp010# uname -a FreeBSD hp010.hetzel.org 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Wed Aug 8 10:38:34 CDT 2007 root_at_hp010.hetzel.org:/usr/src/7x/sys/amd64/compile/GENERIC.debug amd64 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. Scot -- DISCLAIMER: No electrons were mamed while sending this message. Only slightly bruised.Received on Thu Aug 09 2007 - 15:07:10 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:16 UTC