block: properly stack underlying max_segment_size to DM device

Without this patch all DM devices will default to BLK_MAX_SEGMENT_SIZE
(65536) even if the underlying device(s) have a larger value -- this is
due to blk_stack_limits() using min_not_zero() when stacking the
max_segment_size limit.

1073741824

before patch:
65536

after patch:
1073741824

Reported-by: Lukasz Flis <[email protected]>
Signed-off-by: Mike Snitzer <[email protected]>
Cc: [email protected] # v3.3+
Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
Mike Snitzer 2013-10-18 09:44:49 -06:00 • committed by Jens Axboe
commit d82ae52e68

View file

@ -144,6 +144,7 @@ void blk_set_stacking_limits(struct queue_limits *lim)
lim->discard_zeroes_data = 1;
lim->max_segments = USHRT_MAX;
lim->max_hw_sectors = UINT_MAX;
lim->max_segment_size = UINT_MAX;
lim->max_sectors = UINT_MAX;
lim->max_write_same_sectors = UINT_MAX;
}