From: Christoph Hellwig <hch@lst.de>
To: Jens Axboe <axboe@kernel.dk>
Cc: Mike Snitzer <snitzer@redhat.com>,
linux-block@vger.kernel.org, dm-devel@redhat.com
Subject: [PATCH 2/6] dm: open code blk_max_size_offset in max_io_len
Date: Wed, 13 Oct 2021 19:12:11 +0200 [thread overview]
Message-ID: <20211013171215.1177671-3-hch@lst.de> (raw)
In-Reply-To: <20211013171215.1177671-1-hch@lst.de>
max_io_len always passed in an explicit, non-zero chunk_sectors into
blk_max_size_offset. That means much of blk_max_size_offset is not needed
and open coding it simplifies the code.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/md/dm.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index a011d09cb0fac..825ed9d84c9c0 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -944,24 +944,18 @@ static inline sector_t max_io_len_target_boundary(struct dm_target *ti,
static sector_t max_io_len(struct dm_target *ti, sector_t sector)
{
sector_t target_offset = dm_target_offset(ti, sector);
- sector_t len = max_io_len_target_boundary(ti, target_offset);
- sector_t max_len;
+ unsigned int len = max_io_len_target_boundary(ti, target_offset);
/*
* Does the target need to split IO even further?
* - varied (per target) IO splitting is a tenet of DM; this
* explains why stacked chunk_sectors based splitting via
- * blk_max_size_offset() isn't possible here. So pass in
- * ti->max_io_len to override stacked chunk_sectors.
+ * blk_queue_split() isn't possible here.
*/
- if (ti->max_io_len) {
- max_len = blk_max_size_offset(ti->table->md->queue,
- target_offset, ti->max_io_len);
- if (len > max_len)
- len = max_len;
- }
-
- return len;
+ if (!ti->max_io_len)
+ return len;
+ return min3(len, ti->table->md->queue->limits.max_sectors,
+ blk_chunk_sectors_left(target_offset, ti->max_io_len));
}
int dm_set_target_max_io_len(struct dm_target *ti, sector_t len)
--
2.30.2
next prev parent reply other threads:[~2021-10-13 17:15 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-13 17:12 simplify I/O size calculation helpers v2 Christoph Hellwig
2021-10-13 17:12 ` [PATCH 1/6] block: factor out a chunk_size_left helper Christoph Hellwig
2021-10-13 17:12 ` Christoph Hellwig [this message]
2021-10-13 17:12 ` [PATCH 3/6] block: only call blk_queue_get_max_sectors once in blk_rq_get_max_sectors Christoph Hellwig
2021-10-13 17:12 ` [PATCH 4/6] block: open code blk_max_size_offset " Christoph Hellwig
2021-10-13 17:12 ` [PATCH 5/6] block: fold blk_max_size_offset into get_max_io_size Christoph Hellwig
2021-10-13 17:12 ` [PATCH 6/6] block: pass the start sector to get_max_io_size Christoph Hellwig
-- strict thread matches above, loose matches on Subject: below --
2022-06-14 9:09 clean up the chunk_sizehandling helpers a little Christoph Hellwig
2022-06-14 9:09 ` [PATCH 2/6] dm: open code blk_max_size_offset in max_io_len Christoph Hellwig
2022-06-16 23:21 ` Mike Snitzer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211013171215.1177671-3-hch@lst.de \
--to=hch@lst.de \
--cc=axboe@kernel.dk \
--cc=dm-devel@redhat.com \
--cc=linux-block@vger.kernel.org \
--cc=snitzer@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox