Theodore Ts'o wrote on 07/11/2015 23:06: > On Sat, Jul 11, 2015 at 02:07:10PM +0200, Jörg-Volker Peetz wrote: <snip> > I knew about the fact that you couldn't disable lazytime. The issue > is that nolazytime is getting intercepted by the 2.26.2 version of > mount, so ext4 never sees it. But if we interpret the lack of the > lazytime flag in the mount flags passed in from the system call, then > we would *always* disable the lazytime flag if the file system is > remounted using a pre-2.26.2 version of mount. Since a huge number of > Ubuntu LTS and Debian stable users (and probably a bunch of older > Fedora users as well) will be using an older version of mount, I > decided that best compromise is was to allow lazytime to be enabled > using a 2.26.2+ version of mount via remount, but not to allow > lazytime to be disabled. With a pre-2.26.2 version of mount, you'll > be able to enable or disable lazytime. > O.k. Thanks for the explanation. > As far as switching atime modes using remount, this is working for me. > I'm testing with both a 2.25.2 version of mount as found in Debian > Jessie, as well as 2.26.2 version of mount using Debian Stretch. > > > The issue not being able to change the atime, relatime, and noatime > flags is a similar issue. In pre-2.26.2 versions of mount, the atime, > relatime, and noatime strings were passed to the kernel, which would > then interpret the strings and the manipulate the > > >> # strace -o /tmp/st mount -o remount,relatime /home >> # grep ^mount /tmp/st >> mount("/dev/sda2", "/home", 0x1543780, MS_REMOUNT|MS_RELATIME|MS_NOATIME, >> "nobarrier,errors=remount-ro") = 0 > > "MS_REMOUNT|MS_RELATIME|MS_NOATIME" looks wrong. Here's what I'm > seeing on my system: > > # strace -o /tmp/st mount -o remount,relatime /dev/sda3 > # grep sda3 /proc/mounts > /dev/sda3 / ext4 rw,lazytime,relatime,errors=remount-ro,data=ordered 0 0 > # grep MS_REMOUNT /tmp/st > mount("/dev/sda3", "/", 0x1148230, MS_REMOUNT|MS_RELATIME|0x2000000, "errors=remount-ro") = 0 > # strace -o /tmp/st mount -o remount,noatime /dev/sda3 > # grep sda3 /proc/mounts > /dev/sda3 / ext4 rw,lazytime,noatime,errors=remount-ro,data=ordered 0 0 > # grep MS_REMOUNT /tmp/st > mount("/dev/sda3", "/", 0x1458230, MS_REMOUNT|MS_NOATIME|0x2000000, "errors=remount-ro") = 0 > # mount --version > mount from util-linux 2.26.2 (libmount 2.26.0: selinux, assert, debug) > # dpkg -l mount > Desired=Unknown/Install/Remove/Purge/Hold > | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend > |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) > ||/ Name Version Architecture Description > +++-===================-==============-==============-=========================================== > ii mount 2.26.2-6 amd64 Tools for mounting and manipulating filesys > > - Ted On my Debian stretch/sid systems there is: # mount --version mount from util-linux 2.26.2 (libmount 2.26.0: selinux, assert, debug) # dpkg -l mount libmount1 libblkid1 libc6 libselinux1 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-============-============-================================= ii libblkid1:amd6 2.26.2-6 amd64 block device id library ii libc6:amd64 2.19-18 amd64 GNU C Library: Shared libraries ii libmount1:amd6 2.26.2-6 amd64 device mounting library ii libselinux1:am 2.3-2+b1 amd64 SELinux runtime shared libraries ii mount 2.26.2-6 amd64 Tools for mounting and manipulati I'm using kernel 4.1.2 plus two of your patches, but get the same output on a system with a standard Debian kernel linux-image-4.0.0-2-amd64. -- Regards, Jörg. -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html