[PATCH v10 02/18] block: Only use write locking if necessary

Bart Van Assche
2023-08-18T19:46:07Z

Make blk_req_needs_zone_write_lock() return false if
q->limits.use_zone_write_lock is false.

Cc: Damien Le Moal <dlemoal@kernel.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
block/blk-zoned.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/block/blk-zoned.c b/block/blk-zoned.c
index 112620985bff..d8a80cce832f 100644
--- a/block/blk-zoned.c
+++ b/block/blk-zoned.c
@@ -53,11 +53,16 @@ const char *blk_zone_cond_str(enum blk_zone_cond zone_cond)
EXPORT_SYMBOL_GPL(blk_zone_cond_str);

/*
- * Return true if a request is a write requests that needs zone write locking.
+ * Return true if a request is a write request that needs zone write locking.
*/
bool blk_req_needs_zone_write_lock(struct request *rq)
{
- if (!rq->q->disk->seq_zones_wlock)
+ struct request_queue *q = rq->q;
+
+ if (!q->limits.use_zone_write_lock)
+ return false;
+
+ if (!q->disk->seq_zones_wlock)
return false;

return blk_rq_is_seq_zoned_write(rq);