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;