bcachefs: Improve c version of __bkey_cmp_bits
authorKent Overstreet <kent.overstreet@gmail.com>
Tue, 22 Jan 2019 18:46:14 +0000 (13:46 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:14 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/bkey.c

index d35cdde299c49985bd1ffcc62868e26330e63001..8a3295ff96311fe3d089a79ff6e76fefe72bffcd 100644 (file)
@@ -1014,11 +1014,8 @@ static inline int __bkey_cmp_bits(const u64 *l, const u64 *r,
                        nr_key_bits -= 64;
                }
 
-               if (l_v != r_v)
-                       return l_v < r_v ? -1 : 1;
-
-               if (!nr_key_bits)
-                       return 0;
+               if (!nr_key_bits || l_v != r_v)
+                       break;
 
                l = next_word(l);
                r = next_word(r);
@@ -1026,6 +1023,8 @@ static inline int __bkey_cmp_bits(const u64 *l, const u64 *r,
                l_v = *l;
                r_v = *r;
        }
+
+       return (l_v > r_v) - (l_v < r_v);
 }
 #endif