diff options
author | Bart Van Assche <bvanassche@acm.org> | 2023-07-12 10:33:43 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2023-07-12 11:37:41 -0600 |
commit | f673b4f5bd13365c8bee2f38c9794b635c73a302 (patch) | |
tree | 66655494e124c67d96a515eb001295b688246ca5 | |
parent | dc8cbb65dc17b0daebca84375d35ce54ff730762 (diff) | |
download | lwn-f673b4f5bd13365c8bee2f38c9794b635c73a302.tar.gz lwn-f673b4f5bd13365c8bee2f38c9794b635c73a302.zip |
block/mq-deadline: Fix a bug in deadline_from_pos()
A bug was introduced in deadline_from_pos() while implementing the
suggestion to use round_down() in the following code:
pos -= bdev_offset_from_zone_start(rq->q->disk->part0, pos);
This patch makes deadline_from_pos() use round_down() such that 'pos' is
rounded down.
Reported-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Closes: https://lore.kernel.org/all/5zthzi3lppvcdp4nemum6qck4gpqbdhvgy4k3qwguhgzxc4quj@amulvgycq67h/
Cc: Christoph Hellwig <hch@lst.de>
Cc: Damien Le Moal <dlemoal@kernel.org>
Fixes: 0effb390c4ba ("block: mq-deadline: Handle requeued requests correctly")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20230712173344.2994513-1-bvanassche@acm.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r-- | block/mq-deadline.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/block/mq-deadline.c b/block/mq-deadline.c index 6aa5daf7ae32..02a916ba62ee 100644 --- a/block/mq-deadline.c +++ b/block/mq-deadline.c @@ -176,7 +176,7 @@ static inline struct request *deadline_from_pos(struct dd_per_prio *per_prio, * zoned writes, start searching from the start of a zone. */ if (blk_rq_is_seq_zoned_write(rq)) - pos -= round_down(pos, rq->q->limits.chunk_sectors); + pos = round_down(pos, rq->q->limits.chunk_sectors); while (node) { rq = rb_entry_rq(node); |