xfs: always set args->value in xfs_attri_item_recover
authorDarrick J. Wong <djwong@kernel.org>
Mon, 22 Apr 2024 16:47:31 +0000 (09:47 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 23 Apr 2024 14:46:54 +0000 (07:46 -0700)
Always set args->value to the recovered value buffer.  This reduces the
amount of code in the switch statement, and hence the amount of thinking
that I have to do.  We validated the recovered buffers, supposedly.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/xfs_attr_item.c

index ebd6e98d9c66114b5bc1519b4e243e5727ceb0da..8a13e2840692c962092b63eb714b9c2f84ba286c 100644 (file)
@@ -572,6 +572,8 @@ xfs_attri_recover_work(
        args->name = nv->name.i_addr;
        args->namelen = nv->name.i_len;
        args->hashval = xfs_da_hashname(args->name, args->namelen);
+       args->value = nv->value.i_addr;
+       args->valuelen = nv->value.i_len;
        args->attr_filter = attrp->alfi_attr_filter & XFS_ATTRI_FILTER_MASK;
        args->op_flags = XFS_DA_OP_RECOVERY | XFS_DA_OP_OKNOENT |
                         XFS_DA_OP_LOGGED;
@@ -580,8 +582,6 @@ xfs_attri_recover_work(
        switch (xfs_attr_intent_op(attr)) {
        case XFS_ATTRI_OP_FLAGS_SET:
        case XFS_ATTRI_OP_FLAGS_REPLACE:
-               args->value = nv->value.i_addr;
-               args->valuelen = nv->value.i_len;
                args->total = xfs_attr_calc_size(args, &local);
                if (xfs_inode_hasattr(args->dp))
                        attr->xattri_dela_state = xfs_attr_init_replace_state(args);