sd: Fix maximum I/O size for BLOCK_PC requests
authorMartin K. Petersen <martin.petersen@oracle.com>
Tue, 23 Jun 2015 16:13:59 +0000 (12:13 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 13 Sep 2015 16:07:45 +0000 (09:07 -0700)
commit2a51c43d1d6824c3fce1511e0f30db51274e7cd7
treeb86ed0d89253a74116a3a6086c162e0e3954ea2e
parent71b6a23ea944c6a30958bd15a69211e1fd521e1e
sd: Fix maximum I/O size for BLOCK_PC requests

commit 4f258a46346c03fa0bbb6199ffaf4e1f9f599660 upstream.

Commit bcdb247c6b6a ("sd: Limit transfer length") clamped the maximum
size of an I/O request to the MAXIMUM TRANSFER LENGTH field in the BLOCK
LIMITS VPD. This had the unfortunate effect of also limiting the maximum
size of non-filesystem requests sent to the device through sg/bsg.

Avoid using blk_queue_max_hw_sectors() and set the max_sectors queue
limit directly.

Also update the comment in blk_limits_max_hw_sectors() to clarify that
max_hw_sectors defines the limit for the I/O controller only.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Reported-by: Brian King <brking@linux.vnet.ibm.com>
Tested-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
block/blk-settings.c
drivers/scsi/sd.c