2012-06-27 07:31:28

by Cong Meng

[permalink] [raw]
Subject: [PATCH] SCSI: Fix BLKSECTGET ioctl of sg device caculation mistake.

Fix BLKSECTGET ioctl of sg device caculation mistake.

Signed-off-by: Cong Meng <[email protected]>
---
drivers/scsi/sg.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index eacd46b..c424602 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -1070,7 +1070,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg)
return -ENODEV;
return scsi_ioctl(sdp->device, cmd_in, p);
case BLKSECTGET:
- return put_user(queue_max_sectors(sdp->device->request_queue) * 512,
+ return put_user(queue_max_sectors(sdp->device->request_queue),
ip);
case BLKTRACESETUP:
return blk_trace_setup(sdp->device->request_queue,
--
1.7.7.6


2012-06-27 07:49:54

by James Bottomley

[permalink] [raw]
Subject: Re: [PATCH] SCSI: Fix BLKSECTGET ioctl of sg device caculation mistake.

On Wed, 2012-06-27 at 15:29 +0800, Cong Meng wrote:
> Fix BLKSECTGET ioctl of sg device caculation mistake.
>
> Signed-off-by: Cong Meng <[email protected]>
> ---
> drivers/scsi/sg.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
> index eacd46b..c424602 100644
> --- a/drivers/scsi/sg.c
> +++ b/drivers/scsi/sg.c
> @@ -1070,7 +1070,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg)
> return -ENODEV;
> return scsi_ioctl(sdp->device, cmd_in, p);
> case BLKSECTGET:
> - return put_user(queue_max_sectors(sdp->device->request_queue) * 512,
> + return put_user(queue_max_sectors(sdp->device->request_queue),

Really, no. This would break all existing user of the ioctl.

Even if you can find a document somewhere that says BLKSECTGET should
return sectors instead of bytes, we have to go with the ABI we've been
exporting for decades and fix up the document.

James