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-07 11:50:44 -0500
commitfc3da83bd4114e67e1a68c07ca3526f948495803 (patch)
tree046af535da9c1888e4d8f3f2da147dd934a928b5
parent141cc03257e814994add06677cf2324ff1a636d3 (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;
}