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

Signed-off-by: Kent Overstreet <kent.overstr...@linux.dev>
---
 fs/bcachefs/fsck.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/fs/bcachefs/fsck.c b/fs/bcachefs/fsck.c
index f2c8e904acab..96b9ea58705f 100644
--- a/fs/bcachefs/fsck.c
+++ b/fs/bcachefs/fsck.c
@@ -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:
-- 
2.50.0


Reply via email to