]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sd: Optimal I/O size is in bytes, not sectors
authorMartin K. Petersen <martin.petersen@oracle.com>
Wed, 20 Jan 2016 16:01:23 +0000 (11:01 -0500)
committerChuck Anderson <chuck.anderson@oracle.com>
Sat, 16 Jul 2016 06:41:58 +0000 (23:41 -0700)
Orabug: 23615929

(commit d0eb20a863ba7dc1d3f4b841639671f134560be2 of upstream)
Commit ca369d51b3e1 ("block/sd: Fix device-imposed transfer length
limits") accidentally switched optimal I/O size reporting from bytes to
block layer sectors.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Fixes: ca369d51b3e1649be4a72addd6d6a168cfb3f537
Cc: stable@vger.kernel.org # 4.4+
Reviewed-by: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Reviewed-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/scsi/sd.c

index 1af23d34864ae645bd2b2bd6f7ad1eb4d80c6c50..87a08ed16abbd3db5f970cc4b26375f8acf350fe 100644 (file)
@@ -2783,7 +2783,7 @@ static int sd_revalidate_disk(struct gendisk *disk)
            sdkp->opt_xfer_blocks <= SD_DEF_XFER_BLOCKS &&
            sdkp->opt_xfer_blocks * sdp->sector_size >= PAGE_CACHE_SIZE)
                rw_max = q->limits.io_opt =
-                       logical_to_sectors(sdp, sdkp->opt_xfer_blocks);
+                       sdkp->opt_xfer_blocks * sdp->sector_size;
        else
                rw_max = BLK_DEF_MAX_SECTORS;