@@ -741,10 +741,14 @@ int scsi_cmd_blk_ioctl(struct block_device *bd, fmode_t mode,
}
EXPORT_SYMBOL(scsi_cmd_blk_ioctl);
-void scsi_req_init(struct request *rq)
+/**
+ * scsi_req_init - initialize certain fields of a scsi_request structure
+ * @req: Pointer to a scsi_request structure.
+ * Initializes .__cmd[], .cmd, .cmd_len and .sense_len but no other members
+ * of struct scsi_request.
+ */
+void scsi_req_init(struct scsi_request *req)
{
- struct scsi_request *req = scsi_req(rq);
-
memset(req->__cmd, 0, sizeof(req->__cmd));
req->cmd = req->__cmd;
req->cmd_len = BLK_MAX_CDB;
@@ -745,7 +745,7 @@ static void ide_initialize_rq(struct request *rq)
{
struct ide_request *req = blk_mq_rq_to_pdu(rq);
- scsi_req_init(rq);
+ scsi_req_init(&req->sreq);
req->sreq.sense = req->sense;
}
@@ -1136,7 +1136,9 @@ EXPORT_SYMBOL(scsi_init_io);
/* Called from inside blk_get_request() */
static void scsi_initialize_rq(struct request *rq)
{
- scsi_req_init(rq);
+ struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(rq);
+
+ scsi_req_init(&cmd->req);
}
/* Called after a request has been started. */
@@ -215,7 +215,7 @@ static void sas_host_release(struct device *dev)
static void sas_initialize_rq(struct request *rq)
{
- scsi_req_init(rq);
+ scsi_req_init(scsi_req(rq));
}
static int sas_bsg_initialize(struct Scsi_Host *shost, struct sas_rphy *rphy)
@@ -27,6 +27,6 @@ static inline void scsi_req_free_cmd(struct scsi_request *req)
kfree(req->cmd);
}
-void scsi_req_init(struct request *);
+void scsi_req_init(struct scsi_request *req);
#endif /* _SCSI_SCSI_REQUEST_H */
Since scsi_req_init() works on a struct scsi_request, change the argument type into struct scsi_request *. Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Hannes Reinecke <hare@suse.com> --- block/scsi_ioctl.c | 10 +++++++--- drivers/ide/ide-probe.c | 2 +- drivers/scsi/scsi_lib.c | 4 +++- drivers/scsi/scsi_transport_sas.c | 2 +- include/scsi/scsi_request.h | 2 +- 5 files changed, 13 insertions(+), 7 deletions(-)