get_max_io_size has a very odd choice of variables names and
initialization patterns.  Switch to more descriptive names and more
clear initialization of them.

Signed-off-by: Christoph Hellwig <h...@lst.de>
---
 block/blk-merge.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/block/blk-merge.c b/block/blk-merge.c
index df003ecfbd474..4da981efddeed 100644
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -164,18 +164,16 @@ static struct bio *blk_bio_write_zeroes_split(struct 
request_queue *q,
 static inline unsigned get_max_io_size(struct request_queue *q,
                                       struct bio *bio)
 {
-       unsigned sectors = blk_max_size_offset(q, bio->bi_iter.bi_sector, 0);
-       unsigned max_sectors = sectors;
        unsigned pbs = queue_physical_block_size(q) >> SECTOR_SHIFT;
        unsigned lbs = queue_logical_block_size(q) >> SECTOR_SHIFT;
-       unsigned start_offset = bio->bi_iter.bi_sector & (pbs - 1);
-
-       max_sectors += start_offset;
-       max_sectors &= ~(pbs - 1);
-       if (max_sectors > start_offset)
-               return max_sectors - start_offset;
-
-       return sectors & ~(lbs - 1);
+       unsigned max_sectors, start, end;
+
+       max_sectors = blk_max_size_offset(q, bio->bi_iter.bi_sector, 0);
+       start = bio->bi_iter.bi_sector & (pbs - 1);
+       end = (start + max_sectors) & ~(pbs - 1);
+       if (end > start)
+               return end - start;
+       return max_sectors & ~(lbs - 1);
 }
 
 static inline unsigned get_max_segment_size(const struct request_queue *q,
-- 
2.30.2

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel

Reply via email to