Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

jfs: avoid -Wtautological-constant-out-of-range-compare warning again

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>

authored by

Arnd Bergmann and committed by
Dave Kleikamp
dad98c5b 679330e4

+2 -5
+2 -5
fs/jfs/jfs_dtree.c
··· 4412 4412 } 4413 4413 } else { 4414 4414 int fsi; 4415 - /* When there are free slots, freelist must be a valid slot index in 4416 - * 1~DTROOTMAXSLOT-1(since slot[0] is occupied by the header). 4417 - */ 4418 - if (unlikely(p->header.freelist < 1 || 4419 - p->header.freelist >= DTPAGEMAXSLOT)) { 4415 + 4416 + if (unlikely(p->header.freelist < 1)) { 4420 4417 jfs_err("Bad freelist:%d in dtpage\n", p->header.freelist); 4421 4418 return false; 4422 4419 }