diff options
author | Christoph Hellwig <hch@lst.de> | 2014-06-28 16:41:43 +0200 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-07-17 22:11:41 +0200 |
commit | 5158a899d8f24f74cad29b6aaad2b0f86499e5d5 (patch) | |
tree | f5faad5530e2e0e38dcd0bc75777da075976fe29 /drivers/scsi/scsi_lib.c | |
parent | scsi: restructure command initialization for TYPE_FS requests (diff) | |
download | linux-5158a899d8f24f74cad29b6aaad2b0f86499e5d5.tar.xz linux-5158a899d8f24f74cad29b6aaad2b0f86499e5d5.zip |
scsi: set sc_data_direction in common code
The data direction fiel in the SCSI command is derived only from the block
request structure. Move setting it up into common code instead of
duplicating it in the ULDs.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Diffstat (limited to 'drivers/scsi/scsi_lib.c')
-rw-r--r-- | drivers/scsi/scsi_lib.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 2afb96b801cb..4e15a3a5ad29 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -1068,13 +1068,6 @@ int scsi_setup_blk_pc_cmnd(struct scsi_device *sdev, struct request *req) } cmd->cmd_len = req->cmd_len; - if (!blk_rq_bytes(req)) - cmd->sc_data_direction = DMA_NONE; - else if (rq_data_dir(req) == WRITE) - cmd->sc_data_direction = DMA_TO_DEVICE; - else - cmd->sc_data_direction = DMA_FROM_DEVICE; - cmd->transfersize = blk_rq_bytes(req); cmd->allowed = req->retries; return BLKPREP_OK; @@ -1203,6 +1196,13 @@ static int scsi_prep_fn(struct request_queue *q, struct request *req) goto out; } + if (!blk_rq_bytes(req)) + cmd->sc_data_direction = DMA_NONE; + else if (rq_data_dir(req) == WRITE) + cmd->sc_data_direction = DMA_TO_DEVICE; + else + cmd->sc_data_direction = DMA_FROM_DEVICE; + switch (req->cmd_type) { case REQ_TYPE_FS: ret = scsi_setup_fs_cmnd(sdev, req); |