summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Ofitserov <himikof@gmail.com>2025-07-03 02:59:11 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2025-07-02 21:49:04 -0400
commit696ec595c3402aacfcda747fcae2051854680b50 (patch)
tree2e7a9bfe2867e665cada06e2d3a790afe2de578f
parent14a12362bb22b3735c51ecdb712570a12992a695 (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.c3
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,