diff options
Diffstat (limited to 'block/scsi_ioctl.c')
-rw-r--r-- | block/scsi_ioctl.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c index 82a0ca2f6729..5f8e798ede4e 100644 --- a/block/scsi_ioctl.c +++ b/block/scsi_ioctl.c | |||
@@ -75,7 +75,7 @@ static int sg_set_timeout(struct request_queue *q, int __user *p) | |||
75 | 75 | ||
76 | static int sg_get_reserved_size(struct request_queue *q, int __user *p) | 76 | static int sg_get_reserved_size(struct request_queue *q, int __user *p) |
77 | { | 77 | { |
78 | unsigned val = min(q->sg_reserved_size, q->max_sectors << 9); | 78 | unsigned val = min(q->sg_reserved_size, queue_max_sectors(q) << 9); |
79 | 79 | ||
80 | return put_user(val, p); | 80 | return put_user(val, p); |
81 | } | 81 | } |
@@ -89,8 +89,8 @@ static int sg_set_reserved_size(struct request_queue *q, int __user *p) | |||
89 | 89 | ||
90 | if (size < 0) | 90 | if (size < 0) |
91 | return -EINVAL; | 91 | return -EINVAL; |
92 | if (size > (q->max_sectors << 9)) | 92 | if (size > (queue_max_sectors(q) << 9)) |
93 | size = q->max_sectors << 9; | 93 | size = queue_max_sectors(q) << 9; |
94 | 94 | ||
95 | q->sg_reserved_size = size; | 95 | q->sg_reserved_size = size; |
96 | return 0; | 96 | return 0; |
@@ -230,7 +230,7 @@ static int blk_complete_sghdr_rq(struct request *rq, struct sg_io_hdr *hdr, | |||
230 | hdr->info = 0; | 230 | hdr->info = 0; |
231 | if (hdr->masked_status || hdr->host_status || hdr->driver_status) | 231 | if (hdr->masked_status || hdr->host_status || hdr->driver_status) |
232 | hdr->info |= SG_INFO_CHECK; | 232 | hdr->info |= SG_INFO_CHECK; |
233 | hdr->resid = rq->data_len; | 233 | hdr->resid = rq->resid_len; |
234 | hdr->sb_len_wr = 0; | 234 | hdr->sb_len_wr = 0; |
235 | 235 | ||
236 | if (rq->sense_len && hdr->sbp) { | 236 | if (rq->sense_len && hdr->sbp) { |
@@ -264,7 +264,7 @@ static int sg_io(struct request_queue *q, struct gendisk *bd_disk, | |||
264 | if (hdr->cmd_len > BLK_MAX_CDB) | 264 | if (hdr->cmd_len > BLK_MAX_CDB) |
265 | return -EINVAL; | 265 | return -EINVAL; |
266 | 266 | ||
267 | if (hdr->dxfer_len > (q->max_hw_sectors << 9)) | 267 | if (hdr->dxfer_len > (queue_max_hw_sectors(q) << 9)) |
268 | return -EIO; | 268 | return -EIO; |
269 | 269 | ||
270 | if (hdr->dxfer_len) | 270 | if (hdr->dxfer_len) |
@@ -500,9 +500,6 @@ static int __blk_send_generic(struct request_queue *q, struct gendisk *bd_disk, | |||
500 | 500 | ||
501 | rq = blk_get_request(q, WRITE, __GFP_WAIT); | 501 | rq = blk_get_request(q, WRITE, __GFP_WAIT); |
502 | rq->cmd_type = REQ_TYPE_BLOCK_PC; | 502 | rq->cmd_type = REQ_TYPE_BLOCK_PC; |
503 | rq->data = NULL; | ||
504 | rq->data_len = 0; | ||
505 | rq->extra_len = 0; | ||
506 | rq->timeout = BLK_DEFAULT_SG_TIMEOUT; | 503 | rq->timeout = BLK_DEFAULT_SG_TIMEOUT; |
507 | rq->cmd[0] = cmd; | 504 | rq->cmd[0] = cmd; |
508 | rq->cmd[4] = data; | 505 | rq->cmd[4] = data; |