projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
39cd87c
)
bcachefs: Fix assert in bch2_backpointer_invalid()
author
Kent Overstreet
<kent.overstreet@linux.dev>
Fri, 22 Mar 2024 04:15:41 +0000
(
00:15
-0400)
committer
Kent Overstreet
<kent.overstreet@linux.dev>
Mon, 1 Apr 2024 00:36:10 +0000
(20:36 -0400)
Backpointers that point to invalid devices are caught by fsck, not
.key_invalid; so .key_invalid needs to check for them instead of hitting
asserts.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/backpointers.c
patch
|
blob
|
history
diff --git
a/fs/bcachefs/backpointers.c
b/fs/bcachefs/backpointers.c
index 8cb35ea572cb95ce13a956b21a4ec3a40ac39cdb..21b3ae7df82404474f8da819ac7e3648a87f5f70 100644
(file)
--- a/
fs/bcachefs/backpointers.c
+++ b/
fs/bcachefs/backpointers.c
@@
-44,6
+44,11
@@
int bch2_backpointer_invalid(struct bch_fs *c, struct bkey_s_c k,
struct printbuf *err)
{
struct bkey_s_c_backpointer bp = bkey_s_c_to_backpointer(k);
+
+ /* these will be caught by fsck */
+ if (!bch2_dev_exists2(c, bp.k->p.inode))
+ return 0;
+
struct bpos bucket = bp_pos_to_bucket(c, bp.k->p);
int ret = 0;