Re: [PATCH 5/7] xfs: hoist multi-fsb allocation unit detection to a helper

Darrick J. Wong
2024-04-09T21:09:11Z

On Mon, Apr 08, 2024 at 09:07:29AM +1000, Dave Chinner wrote:
> On Tue, Mar 26, 2024 at 06:52:18PM -0700, Darrick J. Wong wrote:
> > From: Darrick J. Wong <djwong@kernel.org>
> >
> > Replace the open-coded logic to decide if a file has a multi-fsb
> > allocation unit to a helper to make the code easier to read.
> >
> > Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> > ---
> > fs/xfs/xfs_bmap_util.c | 4 ++--
> > fs/xfs/xfs_inode.h | 9 +++++++++
> > 2 files changed, 11 insertions(+), 2 deletions(-)
> >
> >
> > diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c
> > index 19e11d1da6607..c17b5858fed62 100644
> > --- a/fs/xfs/xfs_bmap_util.c
> > +++ b/fs/xfs/xfs_bmap_util.c
> > @@ -542,7 +542,7 @@ xfs_can_free_eofblocks(
> > * forever.
> > */
> > end_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_ISIZE(ip));
> > - if (XFS_IS_REALTIME_INODE(ip) && mp->m_sb.sb_rextsize > 1)
> > + if (xfs_inode_has_bigallocunit(ip))
> > end_fsb = xfs_rtb_roundup_rtx(mp, end_fsb);
>
> This makes no sense with the upcoming forced alignment changes to
> this code.
>
> That essentially brings "big alloc unit" to the data device based on
> extent size hints, and it will need to do different rounding
> calculations depending on whether it is a RT inode or not. Hence I
> don't think hiding the RT specific allocation/truncation setup like
> this is compatible with those changes - it will simply have to be
> undone before it can be reworked....

So undo it when you and John and Catherine have a full patchset
implementing forced alignment.

--D

> -Dave.
> --
> Dave Chinner
> david@fromorbit.com
>