diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2018-05-03 20:50:52 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2018-05-22 00:44:18 -0400 |
commit | c921efbe990df022e529d0e4f77f2fde7ad1d074 (patch) | |
tree | 77f67c8d0993a2f7bac1d158769569226b8d1c75 | |
parent | 15b02636f613d3fec076bc645ad9662b583f0876 (diff) |
bcachefs: fix for new assertion
-rw-r--r-- | fs/bcachefs/journal_io.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/bcachefs/journal_io.c b/fs/bcachefs/journal_io.c index e2e5c8ab52c5..bf8b10c6e898 100644 --- a/fs/bcachefs/journal_io.c +++ b/fs/bcachefs/journal_io.c @@ -1236,6 +1236,7 @@ static void journal_write_done(struct closure *cl) struct journal_buf *w = journal_prev_buf(j); struct bch_devs_list devs = bch2_extent_devs(bkey_i_to_s_c_extent(&w->key)); + u64 seq = le64_to_cpu(w->data->seq); if (!devs.nr) { bch_err(c, "unable to write journal to sufficient devices"); @@ -1248,9 +1249,9 @@ out: __bch2_time_stats_update(j->write_time, j->write_start_time); spin_lock(&j->lock); - j->last_seq_ondisk = le64_to_cpu(w->data->last_seq); - - journal_seq_pin(j, le64_to_cpu(w->data->seq))->devs = devs; + j->last_seq_ondisk = seq; + if (seq >= j->pin.front) + journal_seq_pin(j, seq)->devs = devs; /* * Updating last_seq_ondisk may let bch2_journal_reclaim_work() discard |