summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2020-12-02 15:33:12 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2020-12-16 15:29:09 -0500
commit47236dea47656c96e05778592170f0f39032f61a (patch)
tree487d1af7bb84ca39d1b7c7b3e65ce45cffc11606
parent6bcd1d32bd0dccc47b686ffc167e24f6ee7b85b8 (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.c5
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;
}