block: fix max segment size handling in blk_queue_virt_boundary
We should only set the max segment size to unlimited if we actually
have a virt boundary. Otherwise we accidentally clear that limit
when called from the SCSI midlayer, which always calls
blk_queue_virt_boundary, even if that mask is 0.
Fixes: 7ad388d8e4
("scsi: core: add a host / host template field for the virt boundary")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
9c0b2596f2
commit
c6c84f78e2
|
@ -752,7 +752,8 @@ void blk_queue_virt_boundary(struct request_queue *q, unsigned long mask)
|
|||
* page (which might not be idential to the Linux PAGE_SIZE). Because
|
||||
* of that they are not limited by our notion of "segment size".
|
||||
*/
|
||||
q->limits.max_segment_size = UINT_MAX;
|
||||
if (mask)
|
||||
q->limits.max_segment_size = UINT_MAX;
|
||||
}
|
||||
EXPORT_SYMBOL(blk_queue_virt_boundary);
|
||||
|
||||
|
|
Loading…
Reference in a new issue