Christoph Hellwig
b84ba30b6c
block: remove the gendisk argument to blk_execute_rq
...
Remove the gendisk aregument to blk_execute_rq and blk_execute_rq_nowait
given that it is unused now. Also convert the boolean at_head parameter
to actually use the bool type while touching the prototype.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com >
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com >
Link: https://lore.kernel.org/r/20211126121802.2090656-5-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-11-29 06:41:29 -07:00
Christoph Hellwig
0bf6d96cb8
block: remove blk_{get,put}_request
...
These are now pointless wrappers around blk_mq_{alloc,free}_request,
so remove them.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com >
Link: https://lore.kernel.org/r/20211025070517.1548584-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-10-29 06:50:52 -06:00
Christoph Hellwig
68ec3b819a
scsi: add a scsi_alloc_request helper
...
Add a new helper that calls blk_get_request and initializes the
scsi_request to avoid the indirect call through ->.initialize_rq_fn.
Note that this makes the pktcdvd driver depend on the SCSI core, but
given that only SCSI devices support SCSI passthrough requests that
is not a functional change.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Link: https://lore.kernel.org/r/20211021060607.264371-6-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-10-22 08:33:57 -06:00
Christoph Hellwig
5c0f61377b
scsi: bsg: Fix commands without data transfer in scsi_bsg_sg_io_fn()
...
Set ret to 0 after the initial permission checks to avoid leaking -EPERM
for commands without data transfer.
Link: https://lore.kernel.org/r/20210731074027.1185545-2-hch@lst.de
Fixes: 75ca56409e ("scsi: bsg: Move the whole request execution into the SCSI/transport handlers")
Signed-off-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2021-08-01 13:21:40 -04:00
Christoph Hellwig
75ca56409e
scsi: bsg: Move the whole request execution into the SCSI/transport handlers
...
Remove the amount of indirect calls by making the handler responsible for
the entire execution of the request.
Link: https://lore.kernel.org/r/20210729064845.1044147-5-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2021-07-30 22:22:36 -04:00
Christoph Hellwig
ead09dd3ae
scsi: bsg: Simplify device registration
...
Use the per-device cdev_device_interface to store the bsg data in the char
device inode, and thus remove the need to embedd the bsg_class_device
structure in the request_queue.
Link: https://lore.kernel.org/r/20210729064845.1044147-2-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2021-07-30 22:22:36 -04:00
Christoph Hellwig
7353dc06c9
scsi: scsi_ioctl: Simplify SCSI passthrough permission checking
...
Remove the separate command filter structure and just use a switch
statement (which also cought two duplicate commands), return a bool and
give the function a sensible name.
Link: https://lore.kernel.org/r/20210724072033.1284840-18-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2021-07-28 22:24:26 -04:00
Christoph Hellwig
7801104268
scsi: bsg: Move bsg_scsi_ops to drivers/scsi/
...
Move the SCSI-specific bsg code in the SCSI midlayer instead of in the
common bsg code. This just keeps the common bsg code block/ and also
allows building it as a module.
Link: https://lore.kernel.org/r/20210724072033.1284840-15-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2021-07-28 22:24:26 -04:00