Re: [PATCH v3 2/9] xfs: make the seq argument to xfs_bmapi_convert_delalloc() optional

From: Darrick J. Wong
Date: Tue Mar 19 2024 - 17:01:51 EST


On Tue, Mar 19, 2024 at 09:10:55AM +0800, Zhang Yi wrote:
> From: Zhang Yi <yi.zhang@xxxxxxxxxx>
>
> Allow callers to pass a NULLL seq argument if they don't care about
> the fork sequence number.
>
> Signed-off-by: Zhang Yi <yi.zhang@xxxxxxxxxx>
> Reviewed-by: Christoph Hellwig <hch@xxxxxx>

Aha, you want this because xfs_bmbt_to_iomap will set the iomap validity
cookie for us, whereas writeback wants to track the per-fork cookie in
the xfs writeback structure. Ok.

Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx>

--D

> ---
> fs/xfs/libxfs/xfs_bmap.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
> index f362345467fa..07dc35de8ce5 100644
> --- a/fs/xfs/libxfs/xfs_bmap.c
> +++ b/fs/xfs/libxfs/xfs_bmap.c
> @@ -4574,7 +4574,8 @@ xfs_bmapi_convert_delalloc(
> if (!isnullstartblock(bma.got.br_startblock)) {
> xfs_bmbt_to_iomap(ip, iomap, &bma.got, 0, flags,
> xfs_iomap_inode_sequence(ip, flags));
> - *seq = READ_ONCE(ifp->if_seq);
> + if (seq)
> + *seq = READ_ONCE(ifp->if_seq);
> goto out_trans_cancel;
> }
>
> @@ -4623,7 +4624,8 @@ xfs_bmapi_convert_delalloc(
> ASSERT(!isnullstartblock(bma.got.br_startblock));
> xfs_bmbt_to_iomap(ip, iomap, &bma.got, 0, flags,
> xfs_iomap_inode_sequence(ip, flags));
> - *seq = READ_ONCE(ifp->if_seq);
> + if (seq)
> + *seq = READ_ONCE(ifp->if_seq);
>
> if (whichfork == XFS_COW_FORK)
> xfs_refcount_alloc_cow_extent(tp, bma.blkno, bma.length);
> --
> 2.39.2
>
>