diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-05-02 18:39:16 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2022-05-02 18:42:06 -0400 |
commit | 6f5afc0c12bbf56ffdabe5b2c5297aef255c4baa (patch) | |
tree | f5da49a340ab5d14835d37d69d5126f0e955833c /libbcachefs/btree_gc.c | |
parent | 88b27bd794e2fce01453f1b8c482fe1c2470c8d0 (diff) |
Update bcachefs sources to bdf6d7c135 fixup! bcachefs: Kill journal buf bloom filter
Diffstat (limited to 'libbcachefs/btree_gc.c')
-rw-r--r-- | libbcachefs/btree_gc.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/libbcachefs/btree_gc.c b/libbcachefs/btree_gc.c index d027526d..389b5a7b 100644 --- a/libbcachefs/btree_gc.c +++ b/libbcachefs/btree_gc.c @@ -1745,18 +1745,14 @@ static void bch2_gc_stripes_reset(struct bch_fs *c, bool metadata_only) */ int bch2_gc(struct bch_fs *c, bool initial, bool metadata_only) { - u64 start_time = local_clock(); unsigned iter = 0; int ret; lockdep_assert_held(&c->state_lock); - trace_gc_start(c); down_write(&c->gc_lock); - /* flush interior btree updates: */ - closure_wait_event(&c->btree_interior_update_wait, - !bch2_btree_interior_updates_nr_pending(c)); + bch2_btree_interior_updates_flush(c); ret = bch2_gc_start(c, metadata_only) ?: bch2_gc_alloc_start(c, metadata_only) ?: @@ -1845,9 +1841,6 @@ out: up_write(&c->gc_lock); - trace_gc_end(c); - bch2_time_stats_update(&c->times[BCH_TIME_btree_gc], start_time); - /* * At startup, allocations can happen directly instead of via the * allocator thread - issue wakeup in case they blocked on gc_lock: @@ -1984,6 +1977,7 @@ int bch2_gc_gens(struct bch_fs *c) if (!mutex_trylock(&c->gc_gens_lock)) return 0; + trace_gc_gens_start(c); down_read(&c->gc_lock); bch2_trans_init(&trans, c, 0, 0); @@ -2035,6 +2029,7 @@ int bch2_gc_gens(struct bch_fs *c) c->gc_count++; bch2_time_stats_update(&c->times[BCH_TIME_btree_gc], start_time); + trace_gc_gens_end(c); err: for_each_member_device(ca, c, i) { kvfree(ca->oldest_gen); |