bcachefs: Fix inode_backpointer_exists()
authorKent Overstreet <kent.overstreet@gmail.com>
Tue, 12 Apr 2022 02:36:13 +0000 (22:36 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:31 +0000 (17:09 -0400)
If the dirent an inode points to doesn't exist, we shouldn't be
returning an error - just 0/false.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
fs/bcachefs/fsck.c

index 6a89b0694e5008c9b16e8ab7d00eea4bf705c760..ccbf3ac4b1d64c3d07f61d1e3e96e4e1030b7f59 100644 (file)
@@ -1092,7 +1092,7 @@ static int inode_backpointer_exists(struct btree_trans *trans,
                        SPOS(inode->bi_dir, inode->bi_dir_offset, snapshot));
        ret = bkey_err(d.s_c);
        if (ret)
-               return ret;
+               return ret == -ENOENT ? 0 : ret;
 
        ret = dirent_points_to_inode(d, inode);
        bch2_trans_iter_exit(trans, &iter);