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)
committerJames Bottomley <JBottomley@Odin.com>
Wed, 12 Aug 2015 18:54:37 +0000 (11:54 -0700)
commit4f258a46346c03fa0bbb6199ffaf4e1f9f599660
tree87f6203edaaa3e9156c5f1710427a1915195e98e
parent8f2777f53e3d5ad8ef2a176a4463a5c8e1a16431
sd: Fix maximum I/O size for BLOCK_PC requests

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>
Cc: stable@vger.kernel.org # 3.17+
Signed-off-by: James Bottomley <JBottomley@Odin.com>
block/blk-settings.c
drivers/scsi/sd.c