summaryrefslogtreecommitdiffstats
path: root/fs/xfs/libxfs/xfs_da_btree.h
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2022-05-22 15:59:34 +1000
committerDave Chinner <david@fromorbit.com>2022-05-22 15:59:34 +1000
commit4d0cdd2bb8f0bf1a30d361f14bafc428794551e0 (patch)
tree83a2dc3a763aa5e384b77c7f837e2fa6fa4cad48 /fs/xfs/libxfs/xfs_da_btree.h
parent2fe3ffcf5592f24a9f9131a91727673d19f2b2d9 (diff)
downloadlinux-stable-4d0cdd2bb8f0bf1a30d361f14bafc428794551e0.tar.gz
linux-stable-4d0cdd2bb8f0bf1a30d361f14bafc428794551e0.tar.bz2
linux-stable-4d0cdd2bb8f0bf1a30d361f14bafc428794551e0.zip
xfs: clean up xfs_attr_node_hasname
The calling conventions of this function are a mess -- callers /can/ provide a pointer to a pointer to a state structure, but it's not required, and as evidenced by the last two patches, the callers that do weren't be careful enough about how to deal with an existing da state. Push the allocation and freeing responsibilty to the callers, which means that callers from the xattr node state machine steps now have the visibility to allocate or free the da state structure as they please. As a bonus, the node remove/add paths for larp-mode replaces can reset the da state structure instead of freeing and immediately reallocating it. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Allison Henderson <allison.henderson@oracle.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs/libxfs/xfs_da_btree.h')
-rw-r--r--fs/xfs/libxfs/xfs_da_btree.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/xfs/libxfs/xfs_da_btree.h b/fs/xfs/libxfs/xfs_da_btree.h
index ed2303e4d46a..d33b7686a0b3 100644
--- a/fs/xfs/libxfs/xfs_da_btree.h
+++ b/fs/xfs/libxfs/xfs_da_btree.h
@@ -225,6 +225,7 @@ enum xfs_dacmp xfs_da_compname(struct xfs_da_args *args,
struct xfs_da_state *xfs_da_state_alloc(struct xfs_da_args *args);
void xfs_da_state_free(xfs_da_state_t *state);
+void xfs_da_state_reset(struct xfs_da_state *state, struct xfs_da_args *args);
void xfs_da3_node_hdr_from_disk(struct xfs_mount *mp,
struct xfs_da3_icnode_hdr *to, struct xfs_da_intnode *from);