Hello Kent Overstreet,
Commit 6375feaa7a3b ("bcachefs:
bcachefs_metadata_version_inode_has_child_snapshots") from Sep 29,
2024 (linux-next), leads to the following Smatch static checker
warning:
fs/bcachefs/fsck.c:1183 check_inode()
warn: should this be a bitwise negate mask?
fs/bcachefs/fsck.c
1168
1169 ret = bch2_inode_has_child_snapshots(trans, k.k->p);
1170 if (ret < 0)
1171 goto err;
1172
1173 if (fsck_err_on(ret != !!(u.bi_flags &
BCH_INODE_has_child_snapshot),
1174 trans, inode_has_child_snapshots_wrong,
1175 "inode has_child_snapshots flag wrong (should
be %u)\n%s",
1176 ret,
1177 (printbuf_reset(&buf),
1178 bch2_inode_unpacked_to_text(&buf, &u),
1179 buf.buf))) {
1180 if (ret)
1181 u.bi_flags |= BCH_INODE_has_child_snapshot;
1182 else
--> 1183 u.bi_flags &= !BCH_INODE_has_child_snapshot;
This was intended to be u.bi_flags &= ~BCH_INODE_has_child_snapshot otherwise
it's the same as "u.bi_flags = 0;"
1184 do_update = true;
1185 }
1186 ret = 0;
1187
1188 if ((u.bi_flags & BCH_INODE_unlinked) &&
regards,
dan carpenter