summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/target/target_core_file.c9
-rw-r--r--drivers/target/target_core_iblock.c10
-rw-r--r--drivers/target/target_core_rd.c6
-rw-r--r--drivers/target/target_core_transport.c1
-rw-r--r--include/target/target_core_base.h1
5 files changed, 14 insertions, 13 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);
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
index 8ec4e8232be4..df5a4671c82d 100644
--- a/include/target/target_core_base.h
+++ b/include/target/target_core_base.h
@@ -486,7 +486,6 @@ struct se_queue_obj {
};
struct se_task {
- unsigned long long task_lba;
u32 task_sectors;
u32 task_size;
struct se_cmd *task_se_cmd;