On Wed, Jan 05, 2022 at 06:13:09AM +0800, Qu Wenruo wrote: > >>> Should this also verify or at least assert that do_chunk_alloc is not > >>> set? The scrub code is used for replace that can set the parameter to > >>> true. > >> > >> Replace start needs RW mount, thus we don't need to bother replace in > >> this case. > > > > What if replace starts on rw mount, and then it's flipped to read-only? > > I don't see how this is prevented (like by mnt_want_write). It should > > not cause any problems either, as it would not start the transaction. > > For this case, there are 2 entrances: > > - Remount RO > We will stop replace in that case > > - Some fs error (like trans abort) > I believe we should fail at any transaction start. Right, thanks, that was the missing piece.