summaryrefslogtreecommitdiff
path: root/fs/bcachefs/journal_io.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-05-23 00:37:25 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:09:04 +0300
commit731bdd2eff41808ded960fbe62a83672904e1600 (patch)
treef45dc3efc827f42ada2aa6a6b56ad350b9d7e673 /fs/bcachefs/journal_io.c
parent2eba51a69a7aba82bd4639a71b0906be7e23ca5c (diff)
downloadlinux-731bdd2eff41808ded960fbe62a83672904e1600.tar.xz
bcachefs: Add a workqueue for btree io completions
Also, clean up workqueue usage - we shouldn't be using system workqueues, pretty much everything we do needs to be on our own WQ_MEM_RECLAIM workqueues. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs/journal_io.c')
-rw-r--r--fs/bcachefs/journal_io.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/fs/bcachefs/journal_io.c b/fs/bcachefs/journal_io.c
index 2d3fc33720b8..66a0e44a21a6 100644
--- a/fs/bcachefs/journal_io.c
+++ b/fs/bcachefs/journal_io.c
@@ -1295,12 +1295,12 @@ static void journal_write_done(struct closure *cl)
journal_wake(j);
if (test_bit(JOURNAL_NEED_WRITE, &j->flags))
- mod_delayed_work(system_freezable_wq, &j->write_work, 0);
+ mod_delayed_work(c->io_complete_wq, &j->write_work, 0);
spin_unlock(&j->lock);
if (new.unwritten_idx != new.idx &&
!journal_state_count(new, new.unwritten_idx))
- closure_call(&j->io, bch2_journal_write, system_highpri_wq, NULL);
+ closure_call(&j->io, bch2_journal_write, c->io_complete_wq, NULL);
}
static void journal_write_endio(struct bio *bio)
@@ -1367,7 +1367,7 @@ static void do_journal_write(struct closure *cl)
le64_to_cpu(w->data->seq);
}
- continue_at(cl, journal_write_done, system_highpri_wq);
+ continue_at(cl, journal_write_done, c->io_complete_wq);
return;
}
@@ -1506,7 +1506,7 @@ retry_alloc:
journal_debug_buf);
kfree(journal_debug_buf);
bch2_fatal_error(c);
- continue_at(cl, journal_write_done, system_highpri_wq);
+ continue_at(cl, journal_write_done, c->io_complete_wq);
return;
}
@@ -1537,14 +1537,14 @@ retry_alloc:
bch2_bucket_seq_cleanup(c);
- continue_at(cl, do_journal_write, system_highpri_wq);
+ continue_at(cl, do_journal_write, c->io_complete_wq);
return;
no_io:
bch2_bucket_seq_cleanup(c);
- continue_at(cl, journal_write_done, system_highpri_wq);
+ continue_at(cl, journal_write_done, c->io_complete_wq);
return;
err:
bch2_inconsistent_error(c);
- continue_at(cl, journal_write_done, system_highpri_wq);
+ continue_at(cl, journal_write_done, c->io_complete_wq);
}