[SCSI] remove scsi_request infrastructure
With Achim patch the last user (gdth) is switched away from scsi_request so we an kill it now. Also disables some code in i2o_scsi that was broken since the sg driver stopped using scsi_requests. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
committed by
James Bottomley
parent
1951d099df
commit
beb4048750
@@ -9,7 +9,6 @@
|
||||
struct request;
|
||||
struct scatterlist;
|
||||
struct scsi_device;
|
||||
struct scsi_request;
|
||||
|
||||
|
||||
/* embedded in scsi_cmnd */
|
||||
@@ -29,13 +28,8 @@ struct scsi_pointer {
|
||||
};
|
||||
|
||||
struct scsi_cmnd {
|
||||
int sc_magic;
|
||||
|
||||
struct scsi_device *device;
|
||||
struct scsi_request *sc_request;
|
||||
|
||||
struct list_head list; /* scsi_cmnd participates in queue lists */
|
||||
|
||||
struct list_head eh_entry; /* entry for the host eh_cmd_q */
|
||||
int eh_eflags; /* Used by error handlr */
|
||||
void (*done) (struct scsi_cmnd *); /* Mid-level done function */
|
||||
|
||||
@@ -2,14 +2,12 @@
|
||||
#define _SCSI_SCSI_DBG_H
|
||||
|
||||
struct scsi_cmnd;
|
||||
struct scsi_request;
|
||||
struct scsi_sense_hdr;
|
||||
|
||||
extern void scsi_print_command(struct scsi_cmnd *);
|
||||
extern void scsi_print_sense_hdr(const char *, struct scsi_sense_hdr *);
|
||||
extern void __scsi_print_command(unsigned char *);
|
||||
extern void scsi_print_sense(const char *, struct scsi_cmnd *);
|
||||
extern void scsi_print_req_sense(const char *, struct scsi_request *);
|
||||
extern void __scsi_print_sense(const char *name,
|
||||
const unsigned char *sense_buffer,
|
||||
int sense_len);
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
struct scsi_cmnd;
|
||||
struct scsi_device;
|
||||
struct scsi_request;
|
||||
struct Scsi_Host;
|
||||
|
||||
/*
|
||||
@@ -43,8 +42,6 @@ extern void scsi_report_device_reset(struct Scsi_Host *, int, int);
|
||||
extern int scsi_block_when_processing_errors(struct scsi_device *);
|
||||
extern int scsi_normalize_sense(const u8 *sense_buffer, int sb_len,
|
||||
struct scsi_sense_hdr *sshdr);
|
||||
extern int scsi_request_normalize_sense(struct scsi_request *sreq,
|
||||
struct scsi_sense_hdr *sshdr);
|
||||
extern int scsi_command_normalize_sense(struct scsi_cmnd *cmd,
|
||||
struct scsi_sense_hdr *sshdr);
|
||||
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
#ifndef _SCSI_SCSI_REQUEST_H
|
||||
#define _SCSI_SCSI_REQUEST_H
|
||||
|
||||
#include <scsi/scsi_cmnd.h>
|
||||
|
||||
struct request;
|
||||
struct scsi_cmnd;
|
||||
struct scsi_device;
|
||||
struct Scsi_Host;
|
||||
|
||||
|
||||
/*
|
||||
* This is essentially a slimmed down version of Scsi_Cmnd. The point of
|
||||
* having this is that requests that are injected into the queue as result
|
||||
* of things like ioctls and character devices shouldn't be using a
|
||||
* Scsi_Cmnd until such a time that the command is actually at the head
|
||||
* of the queue and being sent to the driver.
|
||||
*/
|
||||
struct scsi_request {
|
||||
int sr_magic;
|
||||
int sr_result; /* Status code from lower level driver */
|
||||
unsigned char sr_sense_buffer[SCSI_SENSE_BUFFERSIZE]; /* obtained by REQUEST SENSE
|
||||
* when CHECK CONDITION is
|
||||
* received on original command
|
||||
* (auto-sense) */
|
||||
|
||||
struct Scsi_Host *sr_host;
|
||||
struct scsi_device *sr_device;
|
||||
struct scsi_cmnd *sr_command;
|
||||
struct request *sr_request; /* A copy of the command we are
|
||||
working on */
|
||||
unsigned sr_bufflen; /* Size of data buffer */
|
||||
void *sr_buffer; /* Data buffer */
|
||||
int sr_allowed;
|
||||
enum dma_data_direction sr_data_direction;
|
||||
unsigned char sr_cmd_len;
|
||||
unsigned char sr_cmnd[MAX_COMMAND_SIZE];
|
||||
void (*sr_done) (struct scsi_cmnd *); /* Mid-level done function */
|
||||
int sr_timeout_per_command;
|
||||
unsigned short sr_use_sg; /* Number of pieces of scatter-gather */
|
||||
unsigned short sr_sglist_len; /* size of malloc'd scatter-gather list */
|
||||
unsigned sr_underflow; /* Return error if less than
|
||||
this amount is transferred */
|
||||
void *upper_private_data; /* reserved for owner (usually upper
|
||||
level driver) of this request */
|
||||
};
|
||||
|
||||
extern struct scsi_request *scsi_allocate_request(struct scsi_device *, gfp_t);
|
||||
extern void scsi_release_request(struct scsi_request *);
|
||||
extern void scsi_do_req(struct scsi_request *, const void *cmnd,
|
||||
void *buffer, unsigned bufflen,
|
||||
void (*done) (struct scsi_cmnd *),
|
||||
int timeout, int retries);
|
||||
#endif /* _SCSI_SCSI_REQUEST_H */
|
||||
@@ -1,26 +0,0 @@
|
||||
typedef struct scsi_request Scsi_Request;
|
||||
|
||||
static Scsi_Request *dummy_cmdp; /* only used for sizeof */
|
||||
|
||||
typedef struct sg_scatter_hold { /* holding area for scsi scatter gather info */
|
||||
unsigned short k_use_sg; /* Count of kernel scatter-gather pieces */
|
||||
unsigned short sglist_len; /* size of malloc'd scatter-gather list ++ */
|
||||
unsigned bufflen; /* Size of (aggregate) data buffer */
|
||||
unsigned b_malloc_len; /* actual len malloc'ed in buffer */
|
||||
void *buffer; /* Data buffer or scatter list (k_use_sg>0) */
|
||||
char dio_in_use; /* 0->indirect IO (or mmap), 1->dio */
|
||||
unsigned char cmd_opcode; /* first byte of command */
|
||||
} Sg_scatter_hold;
|
||||
|
||||
typedef struct sg_request { /* SG_MAX_QUEUE requests outstanding per file */
|
||||
Scsi_Request *my_cmdp; /* != 0 when request with lower levels */
|
||||
struct sg_request *nextrp; /* NULL -> tail request (slist) */
|
||||
struct sg_fd *parentfp; /* NULL -> not in use */
|
||||
Sg_scatter_hold data; /* hold buffer, perhaps scatter list */
|
||||
sg_io_hdr_t header; /* scsi command+info, see <scsi/sg.h> */
|
||||
unsigned char sense_b[sizeof (dummy_cmdp->sr_sense_buffer)];
|
||||
char res_used; /* 1 -> using reserve buffer, 0 -> not ... */
|
||||
char orphan; /* 1 -> drop on sight, 0 -> normal */
|
||||
char sg_io_owned; /* 1 -> packet belongs to SG_IO */
|
||||
volatile char done; /* 0->before bh, 1->before read, 2->read */
|
||||
} Sg_request;
|
||||
Reference in New Issue
Block a user