Christoph Hellwig 17cb960f29 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>
2018-03-13 11:40:24 -06:00
..
2018-02-06 09:59:40 -08:00
2018-02-15 14:50:32 -08:00
2018-02-01 16:35:31 -08:00
2018-02-07 11:22:44 -08:00
2018-02-02 10:01:04 -08:00
2018-02-08 12:03:54 -08:00
2018-02-01 16:35:31 -08:00
2018-03-01 08:33:05 -07:00
2018-02-01 10:31:17 -08:00
2018-02-19 14:16:52 -05:00
2018-02-01 09:40:49 -08:00
2018-01-30 12:25:59 +00:00
2018-02-05 10:07:40 -08:00
2018-02-06 09:59:40 -08:00
2018-02-01 16:35:31 -08:00
2018-02-22 12:13:01 -08:00
2018-02-01 10:31:17 -08:00
2018-02-06 09:59:40 -08:00