Re: RO mount of ext4 filesystem causes writes

From: Sean Greenslade
Date: Tue Jun 13 2023 - 00:57:19 EST


On Mon, Jun 12, 2023 at 01:20:47PM +0700, Bagas Sanjaya wrote:
> On Sun, Jun 11, 2023 at 10:32:53PM -0700, Sean Greenslade wrote:
> > Hello, folks.
> >
> > I noticed a change in behavior of ext4 in recent kernels. I make use of
> > several luks loopback images formatted as ext4 that I mount read-only
> > most of the time. I use rsync to synchronize the backing images between
> > machines. In the past, mouning the images as read-only would not touch
> > the backing image contents at all, but recently this changed. Every
> > mount, even ones that are RO from the start, will cause some small
> > writes to the backing image and thus force rsync to scan the whole file.
> >
> > I confirmed that the issue is still present on v6.4.rc6, so I performed
> > a bisect and landed on the following commit:
> >
> > > eee00237fa5ec8f704f7323b54e48cc34e2d9168 is the first bad commit
> > > commit eee00237fa5ec8f704f7323b54e48cc34e2d9168
> > > Author: Ye Bin <yebin10@xxxxxxxxxx>
> > > Date: Tue Mar 7 14:17:02 2023 +0800
> > >
> > > ext4: commit super block if fs record error when journal record without error
> >
> > That certainly looks like a likely cause of my issue, but I'm not
> > familiar enough with the ext4 code to diagnose any further. Please let
> > me know if you need any additional information, or if you would like me
> > to test anything.
> >
>
> Can you show dmesg when regression happens?
>
> Ye: It looks like this regression is caused by your commit. Would you like
> to take a look on it?
>
> Anyway, thanks for the bug report. I'm adding it to regzbot:
>
> #regzbot ^introduced: eee00237fa5ec8
> #regzbot title: commit super block writes even in read-only filesystems

I did a fresh boot on the 6.4 rc6 kernel and did an RO mount and
unmount. Here's the full dmesg output from that:

[ 48.955896] loop0: detected capacity change from 0 to 4194304
[ 48.965526] Key type trusted registered
[ 48.973640] Key type encrypted registered
[ 49.032404] EXT4-fs (dm-0): mounted filesystem 4e824972-4523-407e-b0da-3229a71b68d8 ro with ordered data mode. Quota mode: none.
[ 61.180755] EXT4-fs (dm-0): unmounting filesystem 4e824972-4523-407e-b0da-3229a71b68d8.
[ 61.236958] dm-0: detected capacity change from 4190208 to 0

Thanks,

--Sean