projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
8e3cc20
)
bcachefs: bch2_extent_normalize() -> bch2_dev_rcu()
author
Kent Overstreet
<kent.overstreet@linux.dev>
Wed, 1 May 2024 01:12:46 +0000
(21:12 -0400)
committer
Kent Overstreet
<kent.overstreet@linux.dev>
Wed, 8 May 2024 21:29:23 +0000
(17:29 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/extents.c
patch
|
blob
|
history
diff --git
a/fs/bcachefs/extents.c
b/fs/bcachefs/extents.c
index 52e79b87b4853e407fc6923fda3e2da5165ad256..7b889f93878bb4ce2ac3cf2fb2307f9f8cfc081e 100644
(file)
--- a/
fs/bcachefs/extents.c
+++ b/
fs/bcachefs/extents.c
@@
-986,9
+986,14
@@
void bch2_extent_ptr_set_cached(struct bkey_s k, struct bch_extent_ptr *ptr)
*/
bool bch2_extent_normalize(struct bch_fs *c, struct bkey_s k)
{
+ struct bch_dev *ca;
+
+ rcu_read_lock();
bch2_bkey_drop_ptrs(k, ptr,
ptr->cached &&
- dev_ptr_stale(bch2_dev_bkey_exists(c, ptr->dev), ptr));
+ (ca = bch2_dev_rcu(c, ptr->dev)) &&
+ dev_ptr_stale_rcu(ca, ptr));
+ rcu_read_unlock();
return bkey_deleted(k.k);
}