diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2018-07-24 23:32:20 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2018-08-01 15:33:50 -0400 |
commit | 8f70bd45d2f9bfe416d606b68cde9ca49dac5d49 (patch) | |
tree | 51549678593c056dbb6170658389166cf3aecd99 /fs/bcachefs/extents.c | |
parent | 14b8a2dff574ac276acd5921dce36c011f838203 (diff) |
wipdisk-usage
Diffstat (limited to 'fs/bcachefs/extents.c')
-rw-r--r-- | fs/bcachefs/extents.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/bcachefs/extents.c b/fs/bcachefs/extents.c index be4dd2307a43..28de20cccd92 100644 --- a/fs/bcachefs/extents.c +++ b/fs/bcachefs/extents.c @@ -1071,8 +1071,8 @@ static void bch2_add_sectors(struct extent_insert_state *s, if (!sectors) return; - bch2_mark_key(c, k, sectors, BCH_DATA_USER, gc_pos_btree_node(b), - &s->stats, s->trans->journal_res.seq, 0); + __bch2_mark_key(c, k, sectors, BCH_DATA_USER, gc_pos_btree_node(b), + &s->stats, s->trans->journal_res.seq, 0); } static void bch2_subtract_sectors(struct extent_insert_state *s, @@ -1650,6 +1650,8 @@ bch2_insert_fixup_extent(struct btree_insert *trans, */ EBUG_ON(bkey_cmp(iter->pos, bkey_start_pos(&insert->k->k))); + percpu_down_read_preempt_disable(&c->usage_lock); + if (!s.deleting && !(trans->flags & BTREE_INSERT_JOURNAL_REPLAY)) bch2_add_sectors(&s, bkey_i_to_s_c(insert->k), @@ -1680,8 +1682,10 @@ bch2_insert_fixup_extent(struct btree_insert *trans, bkey_start_offset(&insert->k->k), insert->k->k.size); - bch2_fs_usage_apply(c, &s.stats, trans->disk_res, - gc_pos_btree_node(b)); + __bch2_fs_usage_apply(c, &s.stats, trans->disk_res, + gc_pos_btree_node(b)); + + percpu_up_read_preempt_enable(&c->usage_lock); EBUG_ON(bkey_cmp(iter->pos, bkey_start_pos(&insert->k->k))); EBUG_ON(bkey_cmp(iter->pos, s.committed)); |