diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2017-05-12 18:45:15 -0800 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2017-05-12 23:14:24 -0800 |
commit | 565b4a74d6c25c78b0d2b82d9529595fc6269308 (patch) | |
tree | 3e4440a60c5f8519352ce5b6c587a7d1a79c4655 /libbcachefs/alloc.c | |
parent | a588eb0d9e30dffa4b319a4715c1454ee1d911f1 (diff) |
Update bcachefs sources to 14e9ac5016 bcachefs: btree_iter fastpath
Diffstat (limited to 'libbcachefs/alloc.c')
-rw-r--r-- | libbcachefs/alloc.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libbcachefs/alloc.c b/libbcachefs/alloc.c index a12c5d3e..36dc947c 100644 --- a/libbcachefs/alloc.c +++ b/libbcachefs/alloc.c @@ -361,7 +361,7 @@ static int __bch2_alloc_write_key(struct bch_fs *c, struct bch_dev *ca, struct bucket *g, struct btree_iter *iter, u64 *journal_seq) { - struct bucket_mark m = READ_ONCE(g->mark); + struct bucket_mark m; __BKEY_PADDED(k, DIV_ROUND_UP(sizeof(struct bch_alloc), 8)) alloc_key; struct bkey_i_alloc *a; u8 *d; @@ -374,6 +374,8 @@ static int __bch2_alloc_write_key(struct bch_fs *c, struct bch_dev *ca, if (ret) break; + /* read mark under btree node lock: */ + m = READ_ONCE(g->mark); a = bkey_alloc_init(&alloc_key.k); a->k.p = iter->pos; a->v.fields = 0; @@ -407,8 +409,6 @@ int bch2_alloc_replay_key(struct bch_fs *c, struct bpos pos) struct btree_iter iter; int ret; - lockdep_assert_held(&c->state_lock); - if (pos.inode >= c->sb.nr_devices || !c->devs[pos.inode]) return 0; |