From owner-freebsd-current@FreeBSD.ORG Thu Aug 9 13:53:48 2007 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2C80A16A417 for ; Thu, 9 Aug 2007 13:53:48 +0000 (UTC) (envelope-from swhetzel@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.189]) by mx1.freebsd.org (Postfix) with ESMTP id 8077413C480 for ; Thu, 9 Aug 2007 13:53:47 +0000 (UTC) (envelope-from swhetzel@gmail.com) Received: by nf-out-0910.google.com with SMTP id b2so141222nfb for ; Thu, 09 Aug 2007 06:53:46 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=EjCI0UkBvkTbYS4blwes06MHqhqlqUYA8wdN8tqH/mEC/6lnxmOE6o5AbuuoCB2Wot1fdr46l1SuKvzRotS0NAqYelO37NPde5Y+OuJtlYyjzJkZsjeM/LSJMcpEqdZRf9xamH8Wg/75Ek+yUcFmwSQMK5vHxrXK/xc18DyOi/k= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=boHed27az5YWCuOJ2SnxM9Wphcaa0vHKkWvEz8hsc4DZzytcfLH0544xffgxEKInGlF+6A2yBCBsnib6FHw6na3gNjpKe3rkNioplBlCf3++gZO1/6S+AFEqWQSjo2KmDNXjWHzu5kJPyOjCHTj7f9CJJTLDbXdj9PoBydBCfMY= Received: by 10.86.57.9 with SMTP id f9mr1186758fga.1186667625747; Thu, 09 Aug 2007 06:53:45 -0700 (PDT) Received: by 10.86.59.6 with HTTP; Thu, 9 Aug 2007 06:53:45 -0700 (PDT) Message-ID: <790a9fff0708090653ld9ee781vead81f533ff5e38c@mail.gmail.com> Date: Thu, 9 Aug 2007 08:53:45 -0500 From: "Scot Hetzel" To: karol.kwiat@gmail.com In-Reply-To: <46BAF87E.8020406@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <46BAF87E.8020406@gmail.com> Cc: freebsd-current@freebsd.org Subject: Re: Can't remove 'noatime' on mounted filesystem on CURRENT X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Aug 2007 13:53:48 -0000 On 8/9/07, Karol Kwiatkowski wrote: > It seems to be impossible to remove 'noatime' property on mounted > filesystem (via -u option): > > # mount | grep ad0s3e > /dev/ad0s3e on /data (ufs, local, noexec, nosuid, soft-updates) > # mount -u -o noatime /data > # mount | grep ad0s3e > /dev/ad0s3e on /data (ufs, local, noatime, soft-updates) > # mount -u -o atime /data > # mount | grep ad0s3e > /dev/ad0s3e on /data (ufs, local, noatime, soft-updates) > > This works on 6.2-RELEASE. > > Btw, setting 'noatime' removes 'noexec' and 'nosuid' in above example. > Is this expected behaviour? Can't decide after reading mount(8). > hp010# mount -u -o noexec,nosuid /tmp ; mount | grep tmp /dev/ad1s2e on /tmp (ufs, local, noexec, nosuid) hp010# mount -u -o noatime /tmp ; mount | grep tmp /dev/ad1s2e on /tmp (ufs, local, noatime) hp010# mount -u -o noexec,nosuid /tmp ; mount | grep tmp /dev/ad1s2e on /tmp (ufs, local, noatime, noexec, nosuid) hp010# mount -u -o noatime /tmp ; mount | grep tmp /dev/ad1s2e on /tmp (ufs, local, noatime) hp010# mount -u -o atime /tmp ; mount | grep tmp /dev/ad1s2e on /tmp (ufs, local, noatime) The only way to get rid of noatime is to umount and remount the UFS filesystem. ZFS seems to have a similar problem with resetting the atime, exec, and setuid mount options when used with mount. 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) Scot -- DISCLAIMER: No electrons were mamed while sending this message. Only slightly bruised.