]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
btrfs: send: directly return strcmp() result when comparing recorded refs
authorFilipe Manana <fdmanana@suse.com>
Wed, 26 Feb 2025 16:18:25 +0000 (16:18 +0000)
committerDavid Sterba <dsterba@suse.com>
Mon, 21 Jul 2025 22:09:20 +0000 (00:09 +0200)
There's no point in converting the return values from strcmp() as all we
need is that it returns a negative value if the first argument is less
than the second, a positive value if it's greater and 0 if equal. We do
not have a need for -1 instead of any other negative value and no need
for 1 instead of any other positive value - that's all that rb_find()
needs and no where else we need specific negative and positive values.

So remove the intermediate local variable and checks and return directly
the result from strcmp().

This also reduces the module's text size.

Before:

  $ size fs/btrfs/btrfs.ko
     text    data     bss     dec     hex filename
  1888116  161347   16136 2065599  1f84bf fs/btrfs/btrfs.ko

After:

  $ size fs/btrfs/btrfs.ko
     text    data     bss     dec     hex filename
  1888052  161347   16136 2065535  1f847f fs/btrfs/btrfs.ko

Reviewed-by: Boris Burkov <boris@bur.io>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/send.c

index 01aab5b7c93a648667ee9cca55b19aecbc9b79ea..09822e766e416bc7c0014961bf4833bf33d674fe 100644 (file)
@@ -4628,7 +4628,6 @@ static int rbtree_ref_comp(const void *k, const struct rb_node *node)
 {
        const struct recorded_ref *data = k;
        const struct recorded_ref *ref = rb_entry(node, struct recorded_ref, node);
-       int result;
 
        if (data->dir > ref->dir)
                return 1;
@@ -4642,12 +4641,7 @@ static int rbtree_ref_comp(const void *k, const struct rb_node *node)
                return 1;
        if (data->name_len < ref->name_len)
                return -1;
-       result = strcmp(data->name, ref->name);
-       if (result > 0)
-               return 1;
-       if (result < 0)
-               return -1;
-       return 0;
+       return strcmp(data->name, ref->name);
 }
 
 static bool rbtree_ref_less(struct rb_node *node, const struct rb_node *parent)