]> git.itanic.dy.fi Git - linux-stable/commitdiff
xfs: remove xfs_attr_shortform_lookup
authorChristoph Hellwig <hch@lst.de>
Wed, 20 Dec 2023 06:34:59 +0000 (07:34 +0100)
committerChandan Babu R <chandanbabu@kernel.org>
Fri, 29 Dec 2023 08:07:04 +0000 (13:37 +0530)
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: Christoph Hellwig <hch@lst.de>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
fs/xfs/libxfs/xfs_attr.c
fs/xfs/libxfs/xfs_attr_leaf.c
fs/xfs/libxfs/xfs_attr_leaf.h

index bcf8748cb1a333a5ffbff59302c39ad05f7ee9f2..e8b4317da830ba4e96436cbb3d40521eec8fdc88 100644 (file)
@@ -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 ||
index 7a623efd23a6a45d0aed3f28ba7e117ae8405eaf..75c597805ffa8b7fe7dfe31081e27543dc01e0b5 100644 (file)
@@ -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.
  *
index 56fcd689eedfe7b1778638bf81d0678c8bb935de..35e668ae744fb14bef8d39a6e051b0b4c014762f 100644 (file)
@@ -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);