]> git.itanic.dy.fi Git - linux-stable/commit
ext4: avoid updating the superblock on a r/o mount if not needed
authorTheodore Ts'o <tytso@mit.edu>
Fri, 23 Jun 2023 14:18:51 +0000 (10:18 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 26 Jun 2023 23:36:45 +0000 (19:36 -0400)
commit2ef6c32a914b85217b44a0a2418e830e520b085e
tree3edb2ad5060e8f3f760b6e15b2188148b685dbf8
parent31464ab01fff910cb88376384e2b6824f7bf713f
ext4: avoid updating the superblock on a r/o mount if not needed

This was noticed by a user who noticied that the mtime of a file
backing a loopback device was getting bumped when the loopback device
is mounted read/only.  Note: This doesn't show up when doing a
loopback mount of a file directly, via "mount -o ro /tmp/foo.img
/mnt", since the loop device is set read-only when mount automatically
creates loop device.  However, this is noticeable for a LUKS loop
device like this:

% cryptsetup luksOpen /tmp/foo.img test
% mount -o ro /dev/loop0 /mnt ; umount /mnt

or, if LUKS is not in use, if the user manually creates the loop
device like this:

% losetup /dev/loop0 /tmp/foo.img
% mount -o ro /dev/loop0 /mnt ; umount /mnt

The modified mtime causes rsync to do a rolling checksum scan of the
file on the local and remote side, incrementally increasing the time
to rsync the not-modified-but-touched image file.

Fixes: eee00237fa5e ("ext4: commit super block if fs record error when journal record without error")
Cc: stable@kernel.org
Link: https://lore.kernel.org/r/ZIauBR7YiV3rVAHL@glitch
Reported-by: Sean Greenslade <sean@seangreenslade.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/super.c