diff options
author | Nikita Ofitserov <himikof@gmail.com> | 2025-07-03 02:59:11 +0300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2025-07-02 21:49:04 -0400 |
commit | 696ec595c3402aacfcda747fcae2051854680b50 (patch) | |
tree | 2e7a9bfe2867e665cada06e2d3a790afe2de578f | |
parent | 14a12362bb22b3735c51ecdb712570a12992a695 (diff) |
bcachefs: Suppress unnecessary inode_i_sectors_wrong fsck error
It is possible that fsck first miscounted the expected sector count (due
to applying other fixes at the same time, for example) and then
corrected itself using extents. No need to log an fsck error and
write the inode in this case.
Signed-off-by: Nikita Ofitserov <himikof@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/fsck.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/bcachefs/fsck.c b/fs/bcachefs/fsck.c index 1ceca63c87a3..471e93a3f00c 100644 --- a/fs/bcachefs/fsck.c +++ b/fs/bcachefs/fsck.c @@ -1638,7 +1638,8 @@ static int check_i_sectors_notnested(struct btree_trans *trans, struct inode_wal i->count = count2; } - if (fsck_err_on(!(i->inode.bi_flags & BCH_INODE_i_sectors_dirty), + if (fsck_err_on(!(i->inode.bi_flags & BCH_INODE_i_sectors_dirty) && + i->inode.bi_sectors != i->count, trans, inode_i_sectors_wrong, "inode %llu:%u has incorrect i_sectors: got %llu, should be %llu", w->last_pos.inode, i->inode.bi_snapshot, |