Re: [PATCH 09/13] xfs: support RT inodes in xfs_mod_delalloc

Dave Chinner
2024-03-28T04:27:39Z

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@lst.de>
.....
> 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@fromorbit.com