bcachefs: fsck: check_subdir_count logs path

We can easily go from inode number -> path now, which makes for more
useful log messages.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2025-06-16 16:15:41 -04:00
parent 8d6ac82361
commit 583ba52a40

View File

@ -2066,14 +2066,22 @@ static int check_subdir_count_notnested(struct btree_trans *trans, struct inode_
continue;
}
if (fsck_err_on(i->inode.bi_nlink != i->count,
trans, inode_dir_wrong_nlink,
"directory %llu:%u with wrong i_nlink: got %u, should be %llu",
w->last_pos.inode, i->inode.bi_snapshot, i->inode.bi_nlink, i->count)) {
i->inode.bi_nlink = i->count;
ret = bch2_fsck_write_inode(trans, &i->inode);
if (ret)
break;
if (i->inode.bi_nlink != i->count) {
CLASS(printbuf, buf)();
lockrestart_do(trans,
bch2_inum_snapshot_to_path(trans, w->last_pos.inode,
i->inode.bi_snapshot, NULL, &buf));
if (fsck_err_on(i->inode.bi_nlink != i->count,
trans, inode_dir_wrong_nlink,
"directory with wrong i_nlink: got %u, should be %llu\n%s",
i->inode.bi_nlink, i->count, buf.buf)) {
i->inode.bi_nlink = i->count;
ret = bch2_fsck_write_inode(trans, &i->inode);
if (ret)
break;
}
}
}
fsck_err: