mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-13 04:46:43 +07:00
17d5363b83
This passes on the scsi_cmnd result field to users of passthrough requests. Currently we abuse req->errors for this purpose, but that field will go away in its current form. Note that the old IDE code abuses the errors field in very creative ways and stores all kinds of different values in it. I didn't dare to touch this magic, so the abuses are brought forward 1:1. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Reviewed-by: Bart Van Assche <Bart.VanAssche@sandisk.com> Signed-off-by: Jens Axboe <axboe@fb.com>
33 lines
620 B
C
33 lines
620 B
C
#ifndef _SCSI_SCSI_REQUEST_H
|
|
#define _SCSI_SCSI_REQUEST_H
|
|
|
|
#include <linux/blk-mq.h>
|
|
|
|
#define BLK_MAX_CDB 16
|
|
|
|
struct scsi_request {
|
|
unsigned char __cmd[BLK_MAX_CDB];
|
|
unsigned char *cmd;
|
|
unsigned short cmd_len;
|
|
int result;
|
|
unsigned int sense_len;
|
|
unsigned int resid_len; /* residual count */
|
|
int retries;
|
|
void *sense;
|
|
};
|
|
|
|
static inline struct scsi_request *scsi_req(struct request *rq)
|
|
{
|
|
return blk_mq_rq_to_pdu(rq);
|
|
}
|
|
|
|
static inline void scsi_req_free_cmd(struct scsi_request *req)
|
|
{
|
|
if (req->cmd != req->__cmd)
|
|
kfree(req->cmd);
|
|
}
|
|
|
|
void scsi_req_init(struct request *);
|
|
|
|
#endif /* _SCSI_SCSI_REQUEST_H */
|