]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
bcachefs: minor journal reclaim fixes
authorKent Overstreet <kent.overstreet@gmail.com>
Thu, 7 Mar 2019 22:19:04 +0000 (17:19 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:17 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/journal_reclaim.c

index 053fa4aa4f5f5a37d474a20fc47ed21060ae5215..2f67ea2debd2d9deb930e513256c2f7f10a57130 100644 (file)
@@ -502,8 +502,8 @@ void bch2_journal_reclaim(struct journal *j)
                nr_buckets = min(nr_buckets, ja->nr);
 
                bucket_to_flush = (ja->cur_idx + nr_buckets) % ja->nr;
-               seq_to_flush = max_t(u64, seq_to_flush,
-                                    ja->bucket_seq[bucket_to_flush]);
+               seq_to_flush = max(seq_to_flush,
+                                  ja->bucket_seq[bucket_to_flush]);
        }
 
        /* Also flush if the pin fifo is more than half full */
@@ -520,12 +520,14 @@ void bch2_journal_reclaim(struct journal *j)
                       msecs_to_jiffies(j->reclaim_delay_ms)))
                min_nr = 1;
 
-       if (j->prereserved.reserved * 2 > j->prereserved.remaining)
+       if (j->prereserved.reserved * 2 > j->prereserved.remaining) {
+               seq_to_flush = max(seq_to_flush, journal_last_seq(j));
                min_nr = 1;
+       }
 
        journal_flush_pins(j, seq_to_flush, min_nr);
 
-       if (!test_bit(BCH_FS_RO, &c->flags))
+       if (!bch2_journal_error(j))
                queue_delayed_work(c->journal_reclaim_wq, &j->reclaim_work,
                                   msecs_to_jiffies(j->reclaim_delay_ms));
 }