Hi Jens, This patch series improves support for zoned block devices in the mq-deadline scheduler by preserving the order of requeued writes (REQ_OP_WRITE and REQ_OP_WRITE_ZEROES). Please consider this patch series for the next merge window. Thanks, Bart. Changes compared to v4: - Changed blk_rq_is_seq_zoned_write() into an inline function. - Reworked patch "Reduce lock contention" such that all merged requests are freed at once. Changes compared to v3: - Addressed Christoph's review feedback. - Dropped patch "block: Micro-optimize blk_req_needs_zone_write_lock()". - Added three new patches: * block: Fix the type of the second bdev_op_is_zoned_write() argument * block: Introduce op_is_zoned_write() * block: mq-deadline: Reduce lock contention Changes compared to v2: - In the patch that micro-optimizes blk_req_needs_zone_write_lock(), inline bdev_op_is_zoned_write() instead of modifying it. - In patch "block: Introduce blk_rq_is_seq_zoned_write()", converted "case REQ_OP_ZONE_APPEND" into a source code comment. - Reworked deadline_skip_seq_writes() as suggested by Christoph. - Dropped the patch that disabled head insertion for zoned writes. - Dropped patch "mq-deadline: Fix a race condition related to zoned writes". - Reworked handling of requeued requests: the 'next_rq' pointer has been removed and instead the position of the most recently dispatched request is tracked. - Dropped the patches for tracking zone capacity and for restricting the number of active zones. Changes compared to v1: - Left out the patches related to request insertion and requeuing since Christoph is busy with reworking these patches. - Added a patch for enforcing the active zone limit. Bart Van Assche (11): block: Simplify blk_req_needs_zone_write_lock() block: Fix the type of the second bdev_op_is_zoned_write() argument block: Introduce op_is_zoned_write() block: Introduce blk_rq_is_seq_zoned_write() block: mq-deadline: Clean up deadline_check_fifo() block: mq-deadline: Simplify deadline_skip_seq_writes() block: mq-deadline: Improve deadline_skip_seq_writes() block: mq-deadline: Reduce lock contention block: mq-deadline: Track the dispatch position block: mq-deadline: Handle requeued requests correctly block: mq-deadline: Fix handling of at-head zoned writes block/blk-zoned.c | 8 +-- block/mq-deadline.c | 123 +++++++++++++++++++++++++++-------------- include/linux/blk-mq.h | 16 ++++++ include/linux/blkdev.h | 13 +++-- 4 files changed, 108 insertions(+), 52 deletions(-)