}
 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;
 
        memset(sense, 0, sizeof(*sense));
 
        blk_rq_init(rq->q, sense_rq);
-       scsi_req_init(sense_rq);
+       scsi_req_init(req);
 
        err = blk_rq_map_kern(drive->queue, sense_rq, sense, sense_len,
                              GFP_NOIO);
 
 {
        struct ide_request *req = blk_mq_rq_to_pdu(rq);
 
-       scsi_req_init(rq);
+       scsi_req_init(&req->sreq);
        req->sreq.sense = req->sense;
 }
 
 
  */
 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);
 }
 EXPORT_SYMBOL(scsi_initialize_rq);
 
 
                kfree(req->cmd);
 }
 
-void scsi_req_init(struct request *);
+void scsi_req_init(struct scsi_request *req);
 
 #endif /* _SCSI_SCSI_REQUEST_H */