diff options
Diffstat (limited to 'drivers/target')
-rw-r--r-- | drivers/target/target_core_file.c | 9 | ||||
-rw-r--r-- | drivers/target/target_core_iblock.c | 10 | ||||
-rw-r--r-- | drivers/target/target_core_rd.c | 6 | ||||
-rw-r--r-- | drivers/target/target_core_transport.c | 1 |
4 files changed, 14 insertions, 12 deletions
diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c index c3e899e551a5..4343cfd68117 100644 --- a/drivers/target/target_core_file.c +++ b/drivers/target/target_core_file.c @@ -273,7 +273,7 @@ static int fd_do_readv(struct se_task *task) struct scatterlist *sg = task->task_sg; struct iovec *iov; mm_segment_t old_fs; - loff_t pos = (task->task_lba * + loff_t pos = (task->task_se_cmd->t_task_lba * se_dev->se_sub_dev->se_dev_attrib.block_size); int ret = 0, i; @@ -326,7 +326,7 @@ static int fd_do_writev(struct se_task *task) struct scatterlist *sg = task->task_sg; struct iovec *iov; mm_segment_t old_fs; - loff_t pos = (task->task_lba * + loff_t pos = (task->task_se_cmd->t_task_lba * se_dev->se_sub_dev->se_dev_attrib.block_size); int ret, i = 0; @@ -402,12 +402,13 @@ static void fd_emulate_write_fua(struct se_cmd *cmd, struct se_task *task) { struct se_device *dev = cmd->se_dev; struct fd_dev *fd_dev = dev->dev_ptr; - loff_t start = task->task_lba * dev->se_sub_dev->se_dev_attrib.block_size; + loff_t start = task->task_se_cmd->t_task_lba * + dev->se_sub_dev->se_dev_attrib.block_size; loff_t end = start + task->task_size; int ret; pr_debug("FILEIO: FUA WRITE LBA: %llu, bytes: %u\n", - task->task_lba, task->task_size); + task->task_se_cmd->t_task_lba, task->task_size); ret = vfs_fsync_range(fd_dev->fd_file, start, end, 1); if (ret != 0) diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c index 2ec299e8a73e..311f43b3cffa 100644 --- a/drivers/target/target_core_iblock.c +++ b/drivers/target/target_core_iblock.c @@ -536,13 +536,13 @@ static int iblock_do_task(struct se_task *task) * struct se_task SCSI blocksize into Linux/Block 512 units for BIO. */ if (dev->se_sub_dev->se_dev_attrib.block_size == 4096) - block_lba = (task->task_lba << 3); + block_lba = (cmd->t_task_lba << 3); else if (dev->se_sub_dev->se_dev_attrib.block_size == 2048) - block_lba = (task->task_lba << 2); + block_lba = (cmd->t_task_lba << 2); else if (dev->se_sub_dev->se_dev_attrib.block_size == 1024) - block_lba = (task->task_lba << 1); + block_lba = (cmd->t_task_lba << 1); else if (dev->se_sub_dev->se_dev_attrib.block_size == 512) - block_lba = task->task_lba; + block_lba = cmd->t_task_lba; else { pr_err("Unsupported SCSI -> BLOCK LBA conversion:" " %u\n", dev->se_sub_dev->se_dev_attrib.block_size); @@ -646,7 +646,7 @@ static void iblock_bio_done(struct bio *bio, int err) return; pr_debug("done[%p] bio: %p task_lba: %llu bio_lba: %llu err=%d\n", - task, bio, task->task_lba, + task, bio, task->task_se_cmd->t_task_lba, (unsigned long long)bio->bi_sector, err); transport_complete_task(task, !atomic_read(&ibr->ib_bio_err_cnt)); diff --git a/drivers/target/target_core_rd.c b/drivers/target/target_core_rd.c index 35c64d1e09d9..0bec5729d073 100644 --- a/drivers/target/target_core_rd.c +++ b/drivers/target/target_core_rd.c @@ -303,7 +303,8 @@ static int rd_do_task(struct se_task *task) u32 src_len; u64 tmp; - tmp = task->task_lba * se_dev->se_sub_dev->se_dev_attrib.block_size; + tmp = task->task_se_cmd->t_task_lba * + se_dev->se_sub_dev->se_dev_attrib.block_size; rd_offset = do_div(tmp, PAGE_SIZE); rd_page = tmp; rd_size = task->task_size; @@ -318,7 +319,8 @@ static int rd_do_task(struct se_task *task) dev->rd_dev_id, task->task_data_direction == DMA_FROM_DEVICE ? "Read" : "Write", - task->task_lba, rd_size, rd_page, rd_offset); + task->task_se_cmd->t_task_lba, + rd_size, rd_page, rd_offset); src_len = PAGE_SIZE - rd_offset; sg_miter_start(&m, task->task_sg, task->task_sg_nents, diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index 2b84521fa0b4..0fb3521d32d6 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c @@ -3724,7 +3724,6 @@ transport_allocate_data_tasks(struct se_cmd *cmd, task->task_sg_nents = sgl_nents; task->task_size = cmd->data_length; - task->task_lba = cmd->t_task_lba; task->task_sectors = sectors; spin_lock_irqsave(&cmd->t_state_lock, flags); |