Commit 22b7b1f5 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Chandan Babu R
Browse files

xfs: remove xfs_attr_shortform_lookup



xfs_attr_shortform_lookup is only used by xfs_attr_shortform_addname,
which is much better served by calling xfs_attr_sf_findname.  Switch
it over and remove xfs_attr_shortform_lookup.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatar"Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
parent 6c8d169b
Loading
Loading
Loading
Loading
+7 −14
Original line number Diff line number Diff line
@@ -1066,19 +1066,14 @@ xfs_attr_shortform_addname(
	struct xfs_da_args	*args)
{
	int			newsize, forkoff;
	int			error;

	trace_xfs_attr_sf_addname(args);

	error = xfs_attr_shortform_lookup(args);
	switch (error) {
	case -ENOATTR:
		if (args->op_flags & XFS_DA_OP_REPLACE)
			return error;
		break;
	case -EEXIST:
	if (xfs_attr_sf_findname(args)) {
		int		error;

		if (!(args->op_flags & XFS_DA_OP_REPLACE))
			return error;
			return -EEXIST;

		error = xfs_attr_sf_removename(args);
		if (error)
@@ -1091,11 +1086,9 @@ xfs_attr_shortform_addname(
		 * around.
		 */
		args->op_flags &= ~XFS_DA_OP_REPLACE;
		break;
	case 0:
		break;
	default:
		return error;
	} else {
		if (args->op_flags & XFS_DA_OP_REPLACE)
			return -ENOATTR;
	}

	if (args->namelen >= XFS_ATTR_SF_ENTSIZE_MAX ||
+0 −24
Original line number Diff line number Diff line
@@ -837,30 +837,6 @@ xfs_attr_sf_removename(
	return 0;
}

/*
 * Look up a name in a shortform attribute list structure.
 */
/*ARGSUSED*/
int
xfs_attr_shortform_lookup(
	struct xfs_da_args		*args)
{
	struct xfs_ifork		*ifp = &args->dp->i_af;
	struct xfs_attr_shortform	*sf = ifp->if_data;
	struct xfs_attr_sf_entry	*sfe;
	int				i;

	ASSERT(ifp->if_format == XFS_DINODE_FMT_LOCAL);
	sfe = &sf->list[0];
	for (i = 0; i < sf->hdr.count;
				sfe = xfs_attr_sf_nextentry(sfe), i++) {
		if (xfs_attr_match(args, sfe->namelen, sfe->nameval,
				sfe->flags))
			return -EEXIST;
	}
	return -ENOATTR;
}

/*
 * Retrieve the attribute value and length.
 *
+0 −1
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ struct xfs_attr3_icleaf_hdr {
 */
void	xfs_attr_shortform_create(struct xfs_da_args *args);
void	xfs_attr_shortform_add(struct xfs_da_args *args, int forkoff);
int	xfs_attr_shortform_lookup(struct xfs_da_args *args);
int	xfs_attr_shortform_getvalue(struct xfs_da_args *args);
int	xfs_attr_shortform_to_leaf(struct xfs_da_args *args);
int	xfs_attr_sf_removename(struct xfs_da_args *args);