Re: [PATCH 2/5] xfs: give the deferred barrier op type a name
From: Darrick J. Wong
Date: Sun Aug 09 2026 - 14:49:24 EST
On Sat, Aug 08, 2026 at 05:40:19PM -0600, Javier Tia wrote:
> xfs_barrier_defer_type is the only xfs_defer_op_type with no .name.
> Every other one carries a short string used for tracing and reporting:
> attr, bmap, extent_free, agfl_free, rtextent_free, refcount,
> rtrefcount, rmap, rtrmap and exchmaps.
>
> That has been harmless because nothing dereferences the field, but it
> leaves a NULL in a table where every other entry is populated, so the
> first caller to print it gets "(null)" in the kernel and undefined
> behaviour in the userspace libxfs build of this file, where xfs_alert
> lands in fprintf. xfs_defer_add() already treats a missing member of
> this table as worth shutting the filesystem down for, so an unpopulated
> one is out of step with how the file handles its own ops tables.
>
> Signed-off-by: Javier Tia <floss@xxxxxxx>
Looks ok,
Reviewed-by: "Darrick J. Wong" <djwong@xxxxxxxxxx>
--D
> ---
> fs/xfs/libxfs/xfs_defer.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/xfs/libxfs/xfs_defer.c b/fs/xfs/libxfs/xfs_defer.c
> index 843c33304441..75f0d37914d5 100644
> --- a/fs/xfs/libxfs/xfs_defer.c
> +++ b/fs/xfs/libxfs/xfs_defer.c
> @@ -229,6 +229,7 @@ xfs_defer_barrier_cancel_item(
> }
>
> static const struct xfs_defer_op_type xfs_barrier_defer_type = {
> + .name = "barrier",
> .max_items = 1,
> .create_intent = xfs_defer_barrier_create_intent,
> .abort_intent = xfs_defer_barrier_abort_intent,
> --
> Javier Tia
>