On 3/28/24 13:14, Christoph Hellwig wrote: >> - if (req_op(req) == REQ_OP_ZONE_APPEND) >> - bio->bi_iter.bi_sector = req->__sector; >> - >> - if (!is_flush) >> + if (!is_flush) { >> + blk_zone_update_request_bio(req, bio); >> bio_endio(bio); >> + } > > As noted by Bart last time around, the blk_zone_update_request_bio > really should stay out of the !is_flush check, as otherwise we'd > break zone appends going through the flush state machine. I do not think that is corect. Because is_flush indicates that RQF_FLUSH_SEQ is set, that is, we are in the middle of a flush sequence. And flush sequence progression is handled at the request level, not BIOs. Once the sequence finishes, then and only then the BIO original endio should be done, meaning that we will then take this path and actually do blk_zone_update_request_bio() and bio_endio(). So I still think this is correct. > > Otherwise this looks good: > > Reviewed-by: Christoph Hellwig <hch@xxxxxx> -- Damien Le Moal Western Digital Research