]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
jfs: avoid -Wtautological-constant-out-of-range-compare warning again
authorArnd Bergmann <arnd@arndb.de>
Mon, 16 Mar 2026 14:42:51 +0000 (15:42 +0100)
committerDave Kleikamp <dave.kleikamp@oracle.com>
Mon, 16 Mar 2026 15:20:47 +0000 (10:20 -0500)
The comparison of an __s8 value against DTPAGEMAXSLOT is still trivially
true, causing a harmless (default disabled) warning with clang:

fs/jfs/jfs_dtree.c:4419:25: error: result of comparison of constant 128 with expression of type 's8' (aka 'signed char') is always false [-Werror,-Wtautological-constant-out-of-range-compare]
 4419 |                                         p->header.freelist >= DTPAGEMAXSLOT)) {
      |                                         ~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~

I previously worked around two of these in commit 7833570dae83 ("jfs: avoid
-Wtautological-constant-out-of-range-compare warning"), but now a new one has
come up, so address the same way by dropping the redundant range check.

Fixes: 119e448bb50a ("jfs: add dtpage integrity check to prevent index/pointer overflows")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
fs/jfs/jfs_dtree.c

index 7669e268fe35ae67a4f0f7e213e1e60fd4ac3f25..ac0f79fafaca04828256f2d5d8478e672083a940 100644 (file)
@@ -4412,11 +4412,8 @@ bool check_dtpage(dtpage_t *p)
                }
        } else {
                int fsi;
-               /* When there are free slots, freelist must be a valid slot index in
-                * 1~DTROOTMAXSLOT-1(since slot[0] is occupied by the header).
-                */
-               if (unlikely(p->header.freelist < 1 ||
-                                       p->header.freelist >= DTPAGEMAXSLOT)) {
+
+               if (unlikely(p->header.freelist < 1)) {
                        jfs_err("Bad freelist:%d in dtpage\n", p->header.freelist);
                        return false;
                }