On 9/5/22 15:50, Christoph Hellwig wrote: > On Fri, Sep 02, 2022 at 10:38:50AM +0900, Damien Le Moal wrote: >> On 9/1/22 16:42, Christoph Hellwig wrote: >>> No users left now that btrfs takes REQ_OP_WRITE bios from iomap and >>> splits and converts them to REQ_OP_ZONE_APPEND internally. >> >> Hu... I wanted to use that for zonefs for doing ZONE APPEND with AIOs... >> Need to revisit that code anyway, so fine for now. > > We could resurrect it. But I suspect that you're better off doing > what btrfs does here - let iomap submit a write bio and then split > it in the submit_bio hook. Nope, we cannot do that for zonefs as the data mapping is implied directly from the written offset (no metadata) so we cannot split an async write into multiple zone append BIOs, since the single aio write data may end up all mingled due to possible reordering of the fragment BIOs. But the need for a split can be checked before submission and an error returned if the aio write is too large. So this method of using the submit_bio hook still works and will simply turn a write into a zone append if the file was open with O_APPEND. -- Damien Le Moal Western Digital Research