Hi Jens, This patch series improves support for zoned block devices in the mq-deadline scheduler as follows: * The order of requeued writes (REQ_OP_WRITE*) is preserved. * The active zone limit is enforced. Please consider this patch series for the next merge window. Thanks, Bart. 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 (9): block: Simplify blk_req_needs_zone_write_lock() block: Micro-optimize blk_req_needs_zone_write_lock() 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: Track the dispatch position block: mq-deadline: Handle requeued requests correctly block: mq-deadline: Fix handling of at-head zoned writes block/blk-mq.h | 4 +- block/blk-zoned.c | 28 ++++++---- block/mq-deadline.c | 114 +++++++++++++++++++++++++++-------------- include/linux/blk-mq.h | 6 +++ include/linux/blkdev.h | 9 ---- 5 files changed, 102 insertions(+), 59 deletions(-)