diff options
author | Christoph Hellwig <hch@lst.de> | 2024-07-01 07:17:51 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2024-07-01 06:52:42 -0600 |
commit | 37105615f73125cb0466c09796f277a4c46d9295 (patch) | |
tree | 6ee5da5a05f2c7c1ab2f4121c16c2e34fc5b96a0 /block | |
parent | f62e8edc0a9fda84fe5bf32d5f5874b489d6c301 (diff) | |
download | linux-stable-37105615f73125cb0466c09796f277a4c46d9295.tar.gz linux-stable-37105615f73125cb0466c09796f277a4c46d9295.tar.bz2 linux-stable-37105615f73125cb0466c09796f277a4c46d9295.zip |
block: don't reduce max_sectors based on io_opt
Don't reduce the max_sectors value below the normal cap when the driver
advertsizes a very low io_opt. This restores the behavior we had before
the recent changes to the max_sectors calculation.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Nitesh Shetty <nj.shetty@samsung.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Link: https://lore.kernel.org/r/20240701051800.1245240-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-settings.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/block/blk-settings.c b/block/blk-settings.c index ff8bbc101fed..9fa4eed4df06 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c @@ -276,7 +276,7 @@ static int blk_validate_limits(struct queue_limits *lim) if (lim->max_user_sectors < PAGE_SIZE / SECTOR_SIZE) return -EINVAL; lim->max_sectors = min(max_hw_sectors, lim->max_user_sectors); - } else if (lim->io_opt) { + } else if (lim->io_opt > (BLK_DEF_MAX_SECTORS_CAP << SECTOR_SHIFT)) { lim->max_sectors = min(max_hw_sectors, lim->io_opt >> SECTOR_SHIFT); } else if (lim->io_min > (BLK_DEF_MAX_SECTORS_CAP << SECTOR_SHIFT)) { |