diff options
Diffstat (limited to 'libbcachefs/btree_update_interior.c')
-rw-r--r-- | libbcachefs/btree_update_interior.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/libbcachefs/btree_update_interior.c b/libbcachefs/btree_update_interior.c index b1b858de..47196c14 100644 --- a/libbcachefs/btree_update_interior.c +++ b/libbcachefs/btree_update_interior.c @@ -1074,8 +1074,8 @@ static void bch2_btree_set_root_inmem(struct btree_update *as, struct btree *b) __bch2_btree_set_root_inmem(c, b); mutex_lock(&c->btree_interior_update_lock); - percpu_down_read_preempt_disable(&c->mark_lock); - fs_usage = bch2_fs_usage_get_scratch(c); + percpu_down_read(&c->mark_lock); + fs_usage = bch2_fs_usage_scratch_get(c); bch2_mark_key_locked(c, bkey_i_to_s_c(&b->key), true, 0, @@ -1088,7 +1088,8 @@ static void bch2_btree_set_root_inmem(struct btree_update *as, struct btree *b) fs_usage); bch2_fs_usage_apply(c, fs_usage, &as->reserve->disk_res); - percpu_up_read_preempt_enable(&c->mark_lock); + bch2_fs_usage_scratch_put(c, fs_usage); + percpu_up_read(&c->mark_lock); mutex_unlock(&c->btree_interior_update_lock); } @@ -1167,8 +1168,8 @@ static void bch2_insert_fixup_btree_ptr(struct btree_update *as, struct btree *b BUG_ON(insert->k.u64s > bch_btree_keys_u64s_remaining(c, b)); mutex_lock(&c->btree_interior_update_lock); - percpu_down_read_preempt_disable(&c->mark_lock); - fs_usage = bch2_fs_usage_get_scratch(c); + percpu_down_read(&c->mark_lock); + fs_usage = bch2_fs_usage_scratch_get(c); bch2_mark_key_locked(c, bkey_i_to_s_c(insert), true, 0, @@ -1189,7 +1190,8 @@ static void bch2_insert_fixup_btree_ptr(struct btree_update *as, struct btree *b bch2_fs_usage_apply(c, fs_usage, &as->reserve->disk_res); - percpu_up_read_preempt_enable(&c->mark_lock); + bch2_fs_usage_scratch_put(c, fs_usage); + percpu_up_read(&c->mark_lock); mutex_unlock(&c->btree_interior_update_lock); bch2_btree_bset_insert_key(iter, b, node_iter, insert); @@ -1437,7 +1439,8 @@ static void btree_split(struct btree_update *as, struct btree *b, bch2_btree_iter_verify_locks(iter); - bch2_time_stats_update(&c->times[BCH_TIME_btree_split], start_time); + bch2_time_stats_update(&c->times[BCH_TIME_btree_node_split], + start_time); } static void @@ -1981,8 +1984,8 @@ static void __bch2_btree_node_update_key(struct bch_fs *c, bch2_btree_node_lock_write(b, iter); mutex_lock(&c->btree_interior_update_lock); - percpu_down_read_preempt_disable(&c->mark_lock); - fs_usage = bch2_fs_usage_get_scratch(c); + percpu_down_read(&c->mark_lock); + fs_usage = bch2_fs_usage_scratch_get(c); bch2_mark_key_locked(c, bkey_i_to_s_c(&new_key->k_i), true, 0, @@ -1993,7 +1996,8 @@ static void __bch2_btree_node_update_key(struct bch_fs *c, fs_usage); bch2_fs_usage_apply(c, fs_usage, &as->reserve->disk_res); - percpu_up_read_preempt_enable(&c->mark_lock); + bch2_fs_usage_scratch_put(c, fs_usage); + percpu_up_read(&c->mark_lock); mutex_unlock(&c->btree_interior_update_lock); if (PTR_HASH(&new_key->k_i) != PTR_HASH(&b->key)) { |