]> git.itanic.dy.fi Git - linux-stable/commitdiff
xfs: turn the XFS_DA_OP_REPLACE checks in xfs_attr_shortform_addname into asserts
authorChristoph Hellwig <hch@lst.de>
Wed, 20 Dec 2023 06:35:03 +0000 (07:35 +0100)
committerChandan Babu R <chandanbabu@kernel.org>
Fri, 29 Dec 2023 08:07:05 +0000 (13:37 +0530)
Since commit deed9512872d ("xfs: Check for -ENOATTR or -EEXIST"), the
high-level attr code does a lookup for any attr we're trying to set,
and does the checks to handle the create vs replace cases, which thus
never hit the low-level attr code.

Turn the checks in xfs_attr_shortform_addname as they must never trip.

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

index ec4061db7ffccd3a5d93b8f75ac0e19a486c6357..9976a00a73f99c46fc27bf6a8e93a390af7b941e 100644 (file)
@@ -1072,8 +1072,7 @@ xfs_attr_shortform_addname(
        if (xfs_attr_sf_findname(args)) {
                int             error;
 
-               if (!(args->op_flags & XFS_DA_OP_REPLACE))
-                       return -EEXIST;
+               ASSERT(args->op_flags & XFS_DA_OP_REPLACE);
 
                error = xfs_attr_sf_removename(args);
                if (error)
@@ -1087,8 +1086,7 @@ xfs_attr_shortform_addname(
                 */
                args->op_flags &= ~XFS_DA_OP_REPLACE;
        } else {
-               if (args->op_flags & XFS_DA_OP_REPLACE)
-                       return -ENOATTR;
+               ASSERT(!(args->op_flags & XFS_DA_OP_REPLACE));
        }
 
        if (args->namelen >= XFS_ATTR_SF_ENTSIZE_MAX ||