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

From: Christoph Hellwig
Date: Fri May 31 2024 - 08:42:49 EST


> - 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.

I'd also find this more readable if resblks was initialized to 0,
and this became a:

if (XFS_IS_REALTIME_INODE(ip))
resblks = XFS_DIOSTRAT_SPACE_RES(mp, 0);