Commit 0b498a5a authored by Kent Overstreet's avatar Kent Overstreet

bcachefs: check bi_parent_subvol in check_inode()

check for inodes with a nonzero bi_parent_subvol field that aren't
actually subvolume roots
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 971a1503
...@@ -1009,6 +1009,16 @@ static int check_inode(struct btree_trans *trans, ...@@ -1009,6 +1009,16 @@ static int check_inode(struct btree_trans *trans,
goto err; goto err;
} }
if (fsck_err_on(u.bi_parent_subvol &&
(u.bi_subvol == 0 ||
u.bi_subvol == BCACHEFS_ROOT_SUBVOL),
c, inode_bi_parent_subvol_nonzero,
"inode %llu:%u has subvol %u but nonzero parent subvol %u",
u.bi_inum, k.k->p.snapshot, u.bi_subvol, u.bi_parent_subvol)) {
u.bi_parent_subvol = 0;
do_update = true;
}
if (u.bi_subvol) { if (u.bi_subvol) {
struct bch_subvolume s; struct bch_subvolume s;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment