mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 05:12:49 +00:00
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: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
971a1503a2
commit
0b498a5a39
1 changed files with 10 additions and 0 deletions
|
@ -1009,6 +1009,16 @@ static int check_inode(struct btree_trans *trans,
|
|||
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) {
|
||||
struct bch_subvolume s;
|
||||
|
||||
|
|
Loading…
Reference in a new issue