Hi Jens, This patch series improves small write IOPS by a factor of four (+300%) for zoned UFS devices on my test setup with a UFSHCI 3.0 controller. Please consider this patch series for the next merge window. Thank you, Bart. Changes compared to v3: - Restored the patch that introduces QUEUE_FLAG_NO_ZONE_WRITE_LOCK. That patch had accidentally been left out from v2. - In patch "block: Introduce the flag REQ_NO_ZONE_WRITE_LOCK", improved the patch description and added the function blk_no_zone_write_lock(). - In patch "block/mq-deadline: Only use zone locking if necessary", moved the blk_queue_is_zoned() call into dd_use_write_locking(). - In patch "fs/f2fs: Disable zone write locking", set REQ_NO_ZONE_WRITE_LOCK from inside __bio_alloc() instead of in f2fs_submit_write_bio(). Changes compared to v2: - Renamed the request queue flag for disabling zone write locking. - Introduced a new request flag for disabling zone write locking. - Modified the mq-deadline scheduler such that zone write locking is only disabled if both flags are set. - Added an F2FS patch that sets the request flag for disabling zone write locking. - Only disable zone write locking in the UFS driver if auto-hibernation is disabled. Changes compared to v1: - Left out the patches that are already upstream. - Switched the approach in patch "scsi: Retry unaligned zoned writes" from retrying immediately to sending unaligned write commands to the SCSI error handler. Bart Van Assche (7): block: Introduce the flag QUEUE_FLAG_NO_ZONE_WRITE_LOCK block: Introduce the flag REQ_NO_ZONE_WRITE_LOCK block/mq-deadline: Only use zone locking if necessary block/null_blk: Support disabling zone write locking scsi: Retry unaligned zoned writes scsi: ufs: Disable zone write locking fs/f2fs: Disable zone write locking block/blk-flush.c | 3 ++- block/mq-deadline.c | 25 ++++++++++++----- drivers/block/null_blk/main.c | 2 ++ drivers/block/null_blk/null_blk.h | 1 + drivers/block/null_blk/zoned.c | 3 +++ drivers/scsi/scsi_error.c | 38 ++++++++++++++++++++++++++ drivers/scsi/scsi_lib.c | 1 + drivers/scsi/sd.c | 2 ++ drivers/ufs/core/ufshcd.c | 45 ++++++++++++++++++++++++++++--- fs/f2fs/data.c | 4 +-- include/linux/blk-mq.h | 11 ++++++++ include/linux/blk_types.h | 8 ++++++ include/linux/blkdev.h | 10 +++++++ include/scsi/scsi.h | 1 + 14 files changed, 142 insertions(+), 12 deletions(-)