diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2020-12-02 15:33:12 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2020-12-16 15:29:09 -0500 |
commit | 47236dea47656c96e05778592170f0f39032f61a (patch) | |
tree | 487d1af7bb84ca39d1b7c7b3e65ce45cffc11606 | |
parent | 6bcd1d32bd0dccc47b686ffc167e24f6ee7b85b8 (diff) |
bcachefs: Fix journal_flush_seq()
The error check was inverted - leading fsyncs to get stuck and hang,
oops.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r-- | fs/bcachefs/journal.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/fs/bcachefs/journal.c b/fs/bcachefs/journal.c index 5874a9ff2204..dd8db8c0c980 100644 --- a/fs/bcachefs/journal.c +++ b/fs/bcachefs/journal.c @@ -553,16 +553,13 @@ int bch2_journal_flush_seq_async(struct journal *j, u64 seq, struct journal_buf *buf; int ret = 0; - if (seq <= j->err_seq) - return -EIO; - if (seq <= j->seq_ondisk) return 1; spin_lock(&j->lock); /* Recheck under lock: */ - if (seq <= j->err_seq) { + if (j->err_seq && seq >= j->err_seq) { ret = -EIO; goto out; } |