diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-04-21 04:19:48 +0200 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-05-08 23:29:20 +0200 |
commit | f04158290d8bdd282899c6dc1539300df40b77d1 (patch) | |
tree | 8651fd521a19c0704e2f7786b9497947fcd30f3a /fs/bcachefs/recovery.c | |
parent | bcachefs: plumb data_type into bch2_bucket_alloc_trans() (diff) | |
download | linux-f04158290d8bdd282899c6dc1539300df40b77d1.tar.xz linux-f04158290d8bdd282899c6dc1539300df40b77d1.zip |
bcachefs: journal seq blacklist gc no longer has to walk btree
Since btree_ptr_v2, we no longer require the journal seq blacklist table
for skipping blacklisted bsets (btree node entries); the pointer to a
given node indicates how much data is present.
Therefore there's no longer any need for journal seq blacklist gc to
walk the btree - we can prune entries older than journal last_seq.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/recovery.c')
-rw-r--r-- | fs/bcachefs/recovery.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/fs/bcachefs/recovery.c b/fs/bcachefs/recovery.c index 27ee27b285bd..c33e20aa56a2 100644 --- a/fs/bcachefs/recovery.c +++ b/fs/bcachefs/recovery.c @@ -878,6 +878,9 @@ use_clean: write_sb = true; } + if (bch2_blacklist_entries_gc(c)) + write_sb = true; + if (write_sb) bch2_write_super(c); mutex_unlock(&c->sb_lock); @@ -900,10 +903,6 @@ use_clean: bch_info(c, "scanning for old btree nodes done"); } - if (c->journal_seq_blacklist_table && - c->journal_seq_blacklist_table->nr > 128) - queue_work(system_long_wq, &c->journal_seq_blacklist_gc_work); - ret = 0; out: bch2_flush_fsck_errs(c); |