Re: [RFC PATCH v4 7/8] xfs: reserve blocks for truncating realtime inode

From: Christoph Hellwig
Date: Fri May 31 2024 - 10:14:54 EST


On Fri, May 31, 2024 at 07:10:00AM -0700, Darrick J. Wong wrote:
> On Fri, May 31, 2024 at 05:42:37AM -0700, Christoph Hellwig wrote:
> > > - error = xfs_trans_alloc(mp, &M_RES(mp)->tr_itruncate, 0, 0, 0, &tp);
> > > + resblks = XFS_IS_REALTIME_INODE(ip) ? XFS_DIOSTRAT_SPACE_RES(mp, 0) : 0;
> >
> > This probably wants a comment explaining that we need the block
> > reservation for bmap btree block allocations / splits that can happen
> > because we can split a written extent into one written and one
> > unwritten, while for the data fork we'll always just shorten or
> > remove extents.
>
> "for the data fork"? <confused>
>
> This always runs on the data fork. Did you mean "for files with alloc
> unit > 1 fsblock"?

Sorry, it was meant to say for the data device. My whole journey
to check if this could get called for the attr fork twisted my mind.
But you have a good point that even for the rt device we only need
the reservation for an rtextsize > 1.