On Tue, Mar 26, 2024 at 06:52:18PM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > 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@xxxxxxxxxx> > --- > 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.... -Dave. -- Dave Chinner david@xxxxxxxxxxxxx