lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 11 Jul 2015 17:06:59 -0400
From:	Theodore Ts'o <tytso@....edu>
To:	Jörg-Volker Peetz <jvpeetz@....de>
Cc:	linux-ext4@...r.kernel.org
Subject: Re: [GIT PULL] ext4 bug fixes for 4.2-rc2

On Sat, Jul 11, 2015 at 02:07:10PM +0200, Jörg-Volker Peetz wrote:
> 
> Hi Ted,
> 
> I'm testing this patch and "ext4: set lazytime on remount if MS_LAZYTIME is set
> by mount" on top of stable kernel 4.1.2.
> 
> So far no problems with lazytime enabled. Thanks for that :-)
> 
> But remounting with mount version 2.26.2 sucks. As promised, lazytime can be
> enabled. But disabling it or trying to switch between atime, relatime, and
> noatime doesn't work.

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.

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
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ