mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 06:01:53 +02:00
bcachefs: check for backpointers to invalid device
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
3b6ebc94a0
commit
debe6965ac
|
|
@ -59,6 +59,10 @@ int bch2_backpointer_validate(struct bch_fs *c, struct bkey_s_c k,
|
|||
"backpointer level bad: %u >= %u",
|
||||
bp.v->level, BTREE_MAX_DEPTH);
|
||||
|
||||
bkey_fsck_err_on(bp.k->p.inode == BCH_SB_MEMBER_INVALID,
|
||||
c, backpointer_dev_bad,
|
||||
"backpointer for BCH_SB_MEMBER_INVALID");
|
||||
|
||||
rcu_read_lock();
|
||||
struct bch_dev *ca = bch2_dev_rcu_noerror(c, bp.k->p.inode);
|
||||
if (!ca) {
|
||||
|
|
|
|||
|
|
@ -138,6 +138,7 @@ enum bch_fsck_flags {
|
|||
x(discarding_bucket_not_in_need_discard_btree, 291, 0) \
|
||||
x(backpointer_bucket_offset_wrong, 125, 0) \
|
||||
x(backpointer_level_bad, 294, 0) \
|
||||
x(backpointer_dev_bad, 297, 0) \
|
||||
x(backpointer_to_missing_device, 126, 0) \
|
||||
x(backpointer_to_missing_alloc, 127, 0) \
|
||||
x(backpointer_to_missing_ptr, 128, 0) \
|
||||
|
|
@ -307,7 +308,7 @@ enum bch_fsck_flags {
|
|||
x(logged_op_but_clean, 283, FSCK_AUTOFIX) \
|
||||
x(compression_opt_not_marked_in_sb, 295, FSCK_AUTOFIX) \
|
||||
x(compression_type_not_marked_in_sb, 296, FSCK_AUTOFIX) \
|
||||
x(MAX, 297, 0)
|
||||
x(MAX, 298, 0)
|
||||
|
||||
enum bch_sb_error_id {
|
||||
#define x(t, n, ...) BCH_FSCK_ERR_##t = n,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user