]> git.hungrycats.org Git - bees/commit
fsync: fix signed comparison of stf.f_type
authorZygo Blaxell <bees@furryterror.org>
Fri, 4 Jul 2025 01:48:40 +0000 (21:48 -0400)
committerZygo Blaxell <bees@furryterror.org>
Fri, 4 Jul 2025 01:48:40 +0000 (21:48 -0400)
commitee5c971d77e04e2978484f4191e8aca1160991a0
treed012dfa12e6888f67d490e5c2a5dcf82f72b1388
parentd37f91650709b865329805170daefa8dd0078f91
fsync: fix signed comparison of stf.f_type

Build fails on 32-bit Slackware because GCC 11's `-Werror=sign-compare`
is stricter than necessary:

cc -Wall -Wextra -Werror -O3 -I../include -D_FILE_OFFSET_BITS=64 -std=c99 -O2 -march=i586 -mtune=i686 -o bees-version.o -c bees-version.c
bees.cc: In function 'void bees_fsync(int)':
bees.cc:426:24: error: comparison of integer expressions of different signedness: '__fsword_t' {aka 'int'} and 'unsigned int' [-Werror=sign-compare]
  426 |         if (stf.f_type != BTRFS_SUPER_MAGIC) {
      |                        ^

To work around this, cast `stf.f_type` to the same type as
`BTRFS_SUPER_MAGIC`, so it has the same number of bits that we're looking
for in the magic value.

Fixes: https://github.com/Zygo/bees/issues/317
Signed-off-by: Zygo Blaxell <bees@furryterror.org>
src/bees.cc