diff options
author | Christoph Hellwig <hch@lst.de> | 2014-05-01 16:51:04 +0200 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-05-19 12:35:09 +0200 |
commit | a1b73fc194e73ed33c8b77bf09374cb05b58151b (patch) | |
tree | 6487feb93c538ca97313408dabdb1f957d6246fe /include/scsi | |
parent | bc85dc500f9df9b2eec15077e5046672c46adeaa (diff) | |
download | linux-a1b73fc194e73ed33c8b77bf09374cb05b58151b.tar.gz linux-a1b73fc194e73ed33c8b77bf09374cb05b58151b.tar.bz2 linux-a1b73fc194e73ed33c8b77bf09374cb05b58151b.zip |
scsi: reintroduce scsi_driver.init_command
Instead of letting the ULD play games with the prep_fn move back to
the model of a central prep_fn with a callback to the ULD. This
already cleans up and shortens the code by itself, and will be required
to properly support blk-mq in the SCSI midlayer.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/scsi_driver.h | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/include/scsi/scsi_driver.h b/include/scsi/scsi_driver.h index 20fdfc2526ad..36c4114ed9bc 100644 --- a/include/scsi/scsi_driver.h +++ b/include/scsi/scsi_driver.h @@ -4,17 +4,17 @@ #include <linux/device.h> struct module; +struct request; struct scsi_cmnd; struct scsi_device; -struct request; -struct request_queue; - struct scsi_driver { struct module *owner; struct device_driver gendrv; void (*rescan)(struct device *); + int (*init_command)(struct scsi_cmnd *); + void (*uninit_command)(struct scsi_cmnd *); int (*done)(struct scsi_cmnd *); int (*eh_action)(struct scsi_cmnd *, int); }; @@ -31,8 +31,5 @@ extern int scsi_register_interface(struct class_interface *); int scsi_setup_blk_pc_cmnd(struct scsi_device *sdev, struct request *req); int scsi_setup_fs_cmnd(struct scsi_device *sdev, struct request *req); -int scsi_prep_state_check(struct scsi_device *sdev, struct request *req); -int scsi_prep_return(struct request_queue *q, struct request *req, int ret); -int scsi_prep_fn(struct request_queue *, struct request *); #endif /* _SCSI_SCSI_DRIVER_H */ |