Re: [PATCH 1/2] block: Check REQ_OP_FLUSH in op_is_flush()
From: Song Liu <song@kernel.org>
Date: 2023-12-21 07:53:57
Also in:
linux-block
From: Song Liu <song@kernel.org>
Date: 2023-12-21 07:53:57
Also in:
linux-block
On Wed, Dec 20, 2023 at 10:12 PM Christoph Hellwig [off-list ref] wrote:
On Wed, Dec 20, 2023 at 05:27:14PM -0800, Song Liu wrote:quoted
Upper layer (fs, etc.) may issue flush with something like: bio_reset(bio, bdev, REQ_OP_FLUSH); bio->bi_end_io = xxx; submit_bio(bio);No, they can't. REQ_OP_FLUSH is currently only used by request based drivers and only generated by the flush state machine.
Hmm... Then this call trace from bcachefs is the exception here:
bch2_journal_write=>
submit_bio=>
...
md_handle_request =>
raid5_make_request =>
chunk_aligned_read =>
raid5_read_one_chunk =>
(Not that I particularly like this wart, I'd much prefer file systems to submit a REQ_OP_FLUSH than an empty write with a preflush flag, but that's not a trivial change).
Kent, I think we need to update how bcachefs issue flushes. Thanks, Song