On Wed, Mar 27, 2024 at 12:03:14PM +0100, Christoph Hellwig wrote: > To prepare for re-enabling delalloc on RT devices, track the data blocks > (which use the RT device when the inode sits on it) and the indirect > blocks (which don't) separately to xfs_mod_delalloc, and add a new > percpu counter to also track the RT delalloc blocks. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> ..... > diff --git a/fs/xfs/scrub/fscounters_repair.c b/fs/xfs/scrub/fscounters_repair.c > index 94cdb852bee462..210ebbcf3e1520 100644 > --- a/fs/xfs/scrub/fscounters_repair.c > +++ b/fs/xfs/scrub/fscounters_repair.c > @@ -65,7 +65,8 @@ xrep_fscounters( > percpu_counter_set(&mp->m_icount, fsc->icount); > percpu_counter_set(&mp->m_ifree, fsc->ifree); > percpu_counter_set(&mp->m_fdblocks, fsc->fdblocks); > - percpu_counter_set(&mp->m_frextents, fsc->frextents); > + percpu_counter_set(&mp->m_frextents, > + fsc->frextents - fsc->frextents_delayed); > mp->m_sb.sb_frextents = fsc->frextents; Why do we set mp->m_frextents differently to mp->m_fdblocks? Surely if we have to care about delalloc blocks here, we have to process both data device and rt device delalloc block accounting the same way, right? -Dave. -- Dave Chinner david@xxxxxxxxxxxxx