diff options
| author | Christoph Hellwig <hch@lst.de> | 2018-03-13 12:28:40 -0400 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2018-03-13 13:40:23 -0400 |
| commit | ef6fa64f9b8e1611854077ea9213f2eef2428cd2 (patch) | |
| tree | 08020d01515b4b92de377a0f2914ccda85d51a1a | |
| parent | 31156ec378c2ed10330c8c06bbf36fb7d7a55506 (diff) | |
bsg-lib: remove bsg_job.req
Users of the bsg-lib interface should only use the bsg_job data structure
and not know about implementation details of it.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Benjamin Block <bblock@linux.vnet.ibm.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
| -rw-r--r-- | block/bsg-lib.c | 14 | ||||
| -rw-r--r-- | include/linux/bsg-lib.h | 1 |
2 files changed, 6 insertions, 9 deletions
diff --git a/block/bsg-lib.c b/block/bsg-lib.c index fb509779a090..f2c2d54a61b4 100644 --- a/block/bsg-lib.c +++ b/block/bsg-lib.c | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | static void bsg_teardown_job(struct kref *kref) | 35 | static void bsg_teardown_job(struct kref *kref) |
| 36 | { | 36 | { |
| 37 | struct bsg_job *job = container_of(kref, struct bsg_job, kref); | 37 | struct bsg_job *job = container_of(kref, struct bsg_job, kref); |
| 38 | struct request *rq = job->req; | 38 | struct request *rq = blk_mq_rq_from_pdu(job); |
| 39 | 39 | ||
| 40 | put_device(job->dev); /* release reference for the request */ | 40 | put_device(job->dev); /* release reference for the request */ |
| 41 | 41 | ||
| @@ -68,19 +68,18 @@ EXPORT_SYMBOL_GPL(bsg_job_get); | |||
| 68 | void bsg_job_done(struct bsg_job *job, int result, | 68 | void bsg_job_done(struct bsg_job *job, int result, |
| 69 | unsigned int reply_payload_rcv_len) | 69 | unsigned int reply_payload_rcv_len) |
| 70 | { | 70 | { |
| 71 | struct request *req = job->req; | 71 | struct request *req = blk_mq_rq_from_pdu(job); |
| 72 | struct request *rsp = req->next_rq; | 72 | struct request *rsp = req->next_rq; |
| 73 | struct scsi_request *rq = scsi_req(req); | ||
| 74 | int err; | 73 | int err; |
| 75 | 74 | ||
| 76 | err = scsi_req(job->req)->result = result; | 75 | err = job->sreq.result = result; |
| 77 | if (err < 0) | 76 | if (err < 0) |
| 78 | /* we're only returning the result field in the reply */ | 77 | /* we're only returning the result field in the reply */ |
| 79 | rq->sense_len = sizeof(u32); | 78 | job->sreq.sense_len = sizeof(u32); |
| 80 | else | 79 | else |
| 81 | rq->sense_len = job->reply_len; | 80 | job->sreq.sense_len = job->reply_len; |
| 82 | /* we assume all request payload was transferred, residual == 0 */ | 81 | /* we assume all request payload was transferred, residual == 0 */ |
| 83 | rq->resid_len = 0; | 82 | job->sreq.resid_len = 0; |
| 84 | 83 | ||
| 85 | if (rsp) { | 84 | if (rsp) { |
| 86 | WARN_ON(reply_payload_rcv_len > scsi_req(rsp)->resid_len); | 85 | WARN_ON(reply_payload_rcv_len > scsi_req(rsp)->resid_len); |
| @@ -232,7 +231,6 @@ static void bsg_initialize_rq(struct request *req) | |||
| 232 | sreq->sense = sense; | 231 | sreq->sense = sense; |
| 233 | sreq->sense_len = SCSI_SENSE_BUFFERSIZE; | 232 | sreq->sense_len = SCSI_SENSE_BUFFERSIZE; |
| 234 | 233 | ||
| 235 | job->req = req; | ||
| 236 | job->reply = sense; | 234 | job->reply = sense; |
| 237 | job->reply_len = sreq->sense_len; | 235 | job->reply_len = sreq->sense_len; |
| 238 | job->dd_data = job + 1; | 236 | job->dd_data = job + 1; |
diff --git a/include/linux/bsg-lib.h b/include/linux/bsg-lib.h index 402223c95ce1..08762d297cbd 100644 --- a/include/linux/bsg-lib.h +++ b/include/linux/bsg-lib.h | |||
| @@ -40,7 +40,6 @@ struct bsg_buffer { | |||
| 40 | struct bsg_job { | 40 | struct bsg_job { |
| 41 | struct scsi_request sreq; | 41 | struct scsi_request sreq; |
| 42 | struct device *dev; | 42 | struct device *dev; |
| 43 | struct request *req; | ||
| 44 | 43 | ||
| 45 | struct kref kref; | 44 | struct kref kref; |
| 46 | 45 | ||
