• Kent Overstreet's avatar
    bcachefs: Fix deadlock in journal write path · 85ab365f
    Kent Overstreet authored
    bch2_journal_write() was incorrectly waiting on earlier journal writes
    synchronously; this usually worked because most of the time we'd be
    running in the context of a thread that did a journal_buf_put(), but
    sometimes we'd be running out of the same workqueue that completes those
    prior journal writes.
    
    Additionally, this makes sure to punt to a workqueue before submitting
    preflushes - we really don't want to be calling submit_bio() in the main
    transaction commit path.
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    85ab365f
journal_io.c 54 KB