• Theodore Ts'o's avatar
    ext4: avoid updating the superblock on a r/o mount if not needed · 2ef6c32a
    Theodore Ts'o authored
    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: eee00237 ("ext4: commit super block if fs record error when journal record without error")
    Cc: stable@kernel.org
    Link: https://lore.kernel.org/r/ZIauBR7YiV3rVAHL@glitchReported-by: default avatarSean Greenslade <sean@seangreenslade.com>
    Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    2ef6c32a
super.c 204 KB