]> git.apps.os.sepia.ceph.com Git - xfsprogs-dev.git/commitdiff
xfs: use xfs_attr_sf_findname in xfs_attr_shortform_getvalue
authorChristoph Hellwig <hch@lst.de>
Mon, 15 Apr 2024 23:07:43 +0000 (16:07 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 17 Apr 2024 21:06:26 +0000 (14:06 -0700)
Source kernel commit: 1fb4b0def7b5a5bf91ad62a112d8d3f6dc76585f

xfs_attr_shortform_getvalue duplicates the logic in xfs_attr_sf_findname.
Use the helper instead.

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>
Reviewed-by: Bill O'Donnell <bodonnel@redhat.com>
libxfs/xfs_attr_leaf.c

index 8f1678d296a7932770d5d2ca316f6d13261e52ee..9b6dcff349c9b0b7ba8f3c23b90ac501e0aa8e82 100644 (file)
@@ -845,23 +845,17 @@ int
 xfs_attr_shortform_getvalue(
        struct xfs_da_args              *args)
 {
-       struct xfs_attr_shortform       *sf = args->dp->i_af.if_data;
        struct xfs_attr_sf_entry        *sfe;
-       int                             i;
 
        ASSERT(args->dp->i_af.if_format == XFS_DINODE_FMT_LOCAL);
 
        trace_xfs_attr_sf_lookup(args);
 
-       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 xfs_attr_copy_value(args,
-                               &sfe->nameval[args->namelen], sfe->valuelen);
-       }
-       return -ENOATTR;
+       sfe = xfs_attr_sf_findname(args);
+       if (!sfe)
+               return -ENOATTR;
+       return xfs_attr_copy_value(args, &sfe->nameval[args->namelen],
+                       sfe->valuelen);
 }
 
 /* Convert from using the shortform to the leaf format. */