diff options
author | Christoph Hellwig <hch@lst.de> | 2018-03-13 17:28:41 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-03-13 11:40:24 -0600 |
commit | 17cb960f29c29ee07bf6848ada3265f4be55972e (patch) | |
tree | 8571a25cac75a45261456dbe6711f324dc5b1044 /drivers/irqchip | |
parent | ef6fa64f9b8e1611854077ea9213f2eef2428cd2 (diff) | |
download | linux-17cb960f29c29ee07bf6848ada3265f4be55972e.tar.gz linux-17cb960f29c29ee07bf6848ada3265f4be55972e.tar.bz2 linux-17cb960f29c29ee07bf6848ada3265f4be55972e.zip |
bsg: split handling of SCSI CDBs vs transport requeues
The current BSG design tries to shoe-horn the transport-specific
passthrough commands into the overall framework for SCSI passthrough
requests. This has a couple problems:
- each passthrough queue has to set the QUEUE_FLAG_SCSI_PASSTHROUGH flag
despite not dealing with SCSI commands at all. Because of that these
queues could also incorrectly accept SCSI commands from in-kernel
users or through the legacy SCSI_IOCTL_SEND_COMMAND ioctl.
- the real SCSI bsg queues also incorrectly accept bsg requests of the
BSG_SUB_PROTOCOL_SCSI_TRANSPORT type
- the bsg transport code is almost unredable because it tries to reuse
different SCSI concepts for its own purpose.
This patch instead adds a new bsg_ops structure to handle the two cases
differently, and thus solves all of the above problems. Another side
effect is that the bsg-lib queues also don't need to embedd a
struct scsi_request anymore.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/irqchip')
0 files changed, 0 insertions, 0 deletions