On 11/17/25 11:03 PM, Christoph Hellwig wrote:
currently writes to sequential write zones either need to use Zone
Append, or have a local queue list to order writes before the
submission, just for the block layer than having another ordered list
in the zwplug to issue them one at a time.
This series allows to leverage the zwplug list to create ordering when
the submitter guarantees that it will fill any resulting gap, i.e. unless
an I/O error happens there will be no missing I/Os. Users of zoned
devices have to do that anyway as they can't leave gaps, but we can't
guaranteed that for user I/O. Kernel I/O on the other is trusted and can
set this flag.
This series adds the support and converts dm-kcopyd as the most trivial
user. File system conversion will be a bit more complex as the
call chains are bit more complex and need a full audit.
Hi Christoph,
Is the following deadlock inherent to this approach?
- Several bios are present on zwplug->bio_list and these bios cannot be
submitted because their starting offset is past the write pointer.
- No new bios can be allocated because all memory is in use.
- A deadlock occurs because none of the queued bios can be submitted
and no new bio can be allocated.
Thanks,
Bart.