dm cache: set minimum_io_size to cache's data block size
Before, if the block layer's limit stacking didn't establish an optimal_io_size that was compatible with the cache's data block size we'd set optimal_io_size to the data block size and minimum_io_size to 0 (which the block layer adjusts to be physical_block_size). Update cache_io_hints() to set both minimum_io_size and optimal_io_size to the cache's data block size. This fixes an issue where mkfs.xfs would create more XFS Allocation Groups on cache volumes than on a normal linear LV of comparable size. Signed-off-by: Mike Snitzer <snitzer@redhat.com>
This commit is contained in:
parent
fdfb4c8c1a
commit
b02465308f
|
@ -3094,7 +3094,7 @@ static void cache_io_hints(struct dm_target *ti, struct queue_limits *limits)
|
||||||
*/
|
*/
|
||||||
if (io_opt_sectors < cache->sectors_per_block ||
|
if (io_opt_sectors < cache->sectors_per_block ||
|
||||||
do_div(io_opt_sectors, cache->sectors_per_block)) {
|
do_div(io_opt_sectors, cache->sectors_per_block)) {
|
||||||
blk_limits_io_min(limits, 0);
|
blk_limits_io_min(limits, cache->sectors_per_block << SECTOR_SHIFT);
|
||||||
blk_limits_io_opt(limits, cache->sectors_per_block << SECTOR_SHIFT);
|
blk_limits_io_opt(limits, cache->sectors_per_block << SECTOR_SHIFT);
|
||||||
}
|
}
|
||||||
set_discard_limits(cache, limits);
|
set_discard_limits(cache, limits);
|
||||||
|
|
Loading…
Reference in New Issue