[dm-devel] [PATCH 05/15] dm: remove incomple BLOCK_PC support
Mike Snitzer
snitzer at redhat.com
Thu Jan 12 01:09:37 UTC 2017
On Tue, Jan 10 2017 at 10:06am -0500,
Christoph Hellwig <hch at lst.de> wrote:
> DM tries to copy a few fields around for BLOCK_PC requests, but given
> that no dm-target ever wires up scsi_cmd_ioctl BLOCK_PC can't actually
> be sent to dm.
>
> Signed-off-by: Christoph Hellwig <hch at lst.de>
> ---
> drivers/md/dm-rq.c | 16 ----------------
> 1 file changed, 16 deletions(-)
>
> diff --git a/drivers/md/dm-rq.c b/drivers/md/dm-rq.c
> index 93f6e9f..3f12916 100644
> --- a/drivers/md/dm-rq.c
> +++ b/drivers/md/dm-rq.c
> @@ -270,19 +270,6 @@ static void dm_end_request(struct request *clone, int error)
> struct mapped_device *md = tio->md;
> struct request *rq = tio->orig;
>
> - if (rq->cmd_type == REQ_TYPE_BLOCK_PC) {
> - rq->errors = clone->errors;
> - rq->resid_len = clone->resid_len;
> -
> - if (rq->sense)
> - /*
> - * We are using the sense buffer of the original
> - * request.
> - * So setting the length of the sense data is enough.
> - */
> - rq->sense_len = clone->sense_len;
> - }
> -
> free_rq_clone(clone);
> rq_end_stats(md, rq);
> if (!rq->q->mq_ops)
> @@ -511,9 +498,6 @@ static int setup_clone(struct request *clone, struct request *rq,
> if (r)
> return r;
>
> - clone->cmd = rq->cmd;
> - clone->cmd_len = rq->cmd_len;
> - clone->sense = rq->sense;
> clone->end_io = end_clone_request;
> clone->end_io_data = tio;
>
I'm not following your reasoning.
dm_blk_ioctl calls __blkdev_driver_ioctl and will call scsi_cmd_ioctl
(sd_ioctl -> scsi_cmd_blk_ioctl -> scsi_cmd_ioctl) if DM's underlying
block device is a scsi device.
More information about the dm-devel
mailing list