forked from mirrors/linux
		
	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>
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			620 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			32 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 */
 |