aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2012-04-23 11:35:31 -0400
committerNicholas Bellinger <nab@linux-iscsi.org>2012-05-06 18:03:41 -0400
commit7a83aa4e7b26ba61b9dc98d5c0bf725f4df0043f (patch)
treedc2c7e29f7850e238e5f752aaeb4bbaa8dd69f94 /drivers
parent72a0e5e2e2e6b577343c79013611ad5701e94482 (diff)
target: remove the task_size field in struct se_task
Now that we don't split commands the size field in the task is always equivalent to the one in the CDB, even in cases where we have two tasks due to a BIDI transfer. Just refer the the size in the command instead of duplicating it in the task. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/target/target_core_file.c11
-rw-r--r--drivers/target/target_core_iblock.c3
-rw-r--r--drivers/target/target_core_pscsi.c6
-rw-r--r--drivers/target/target_core_rd.c2
-rw-r--r--drivers/target/target_core_transport.c2
5 files changed, 12 insertions, 12 deletions
diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c
index 4343cfd6811..6667039250c 100644
--- a/drivers/target/target_core_file.c
+++ b/drivers/target/target_core_file.c
@@ -300,10 +300,10 @@ static int fd_do_readv(struct se_task *task)
300 * block_device. 300 * block_device.
301 */ 301 */
302 if (S_ISBLK(fd->f_dentry->d_inode->i_mode)) { 302 if (S_ISBLK(fd->f_dentry->d_inode->i_mode)) {
303 if (ret < 0 || ret != task->task_size) { 303 if (ret < 0 || ret != task->task_se_cmd->data_length) {
304 pr_err("vfs_readv() returned %d," 304 pr_err("vfs_readv() returned %d,"
305 " expecting %d for S_ISBLK\n", ret, 305 " expecting %d for S_ISBLK\n", ret,
306 (int)task->task_size); 306 (int)task->task_se_cmd->data_length);
307 return (ret < 0 ? ret : -EINVAL); 307 return (ret < 0 ? ret : -EINVAL);
308 } 308 }
309 } else { 309 } else {
@@ -348,7 +348,7 @@ static int fd_do_writev(struct se_task *task)
348 348
349 kfree(iov); 349 kfree(iov);
350 350
351 if (ret < 0 || ret != task->task_size) { 351 if (ret < 0 || ret != task->task_se_cmd->data_length) {
352 pr_err("vfs_writev() returned %d\n", ret); 352 pr_err("vfs_writev() returned %d\n", ret);
353 return (ret < 0 ? ret : -EINVAL); 353 return (ret < 0 ? ret : -EINVAL);
354 } 354 }
@@ -404,11 +404,12 @@ static void fd_emulate_write_fua(struct se_cmd *cmd, struct se_task *task)
404 struct fd_dev *fd_dev = dev->dev_ptr; 404 struct fd_dev *fd_dev = dev->dev_ptr;
405 loff_t start = task->task_se_cmd->t_task_lba * 405 loff_t start = task->task_se_cmd->t_task_lba *
406 dev->se_sub_dev->se_dev_attrib.block_size; 406 dev->se_sub_dev->se_dev_attrib.block_size;
407 loff_t end = start + task->task_size; 407 loff_t end = start + task->task_se_cmd->data_length;
408 int ret; 408 int ret;
409 409
410 pr_debug("FILEIO: FUA WRITE LBA: %llu, bytes: %u\n", 410 pr_debug("FILEIO: FUA WRITE LBA: %llu, bytes: %u\n",
411 task->task_se_cmd->t_task_lba, task->task_size); 411 task->task_se_cmd->t_task_lba,
412 task->task_se_cmd->data_length);
412 413
413 ret = vfs_fsync_range(fd_dev->fd_file, start, end, 1); 414 ret = vfs_fsync_range(fd_dev->fd_file, start, end, 1);
414 if (ret != 0) 415 if (ret != 0)
diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
index 311f43b3cff..873440bf65f 100644
--- a/drivers/target/target_core_iblock.c
+++ b/drivers/target/target_core_iblock.c
@@ -478,7 +478,8 @@ iblock_get_bio(struct se_task *task, sector_t lba, u32 sg_num)
478 478
479 pr_debug("Allocated bio: %p task_sg_nents: %u using ibd_bio_set:" 479 pr_debug("Allocated bio: %p task_sg_nents: %u using ibd_bio_set:"
480 " %p\n", bio, task->task_sg_nents, ib_dev->ibd_bio_set); 480 " %p\n", bio, task->task_sg_nents, ib_dev->ibd_bio_set);
481 pr_debug("Allocated bio: %p task_size: %u\n", bio, task->task_size); 481 pr_debug("Allocated bio: %p task_size: %u\n", bio,
482 task->task_se_cmd->data_length);
482 483
483 bio->bi_bdev = ib_dev->ibd_bd; 484 bio->bi_bdev = ib_dev->ibd_bd;
484 bio->bi_private = task; 485 bio->bi_private = task;
diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c
index 94c7a464963..46eb017287a 100644
--- a/drivers/target/target_core_pscsi.c
+++ b/drivers/target/target_core_pscsi.c
@@ -967,8 +967,8 @@ static int pscsi_map_sg(struct se_task *task, struct scatterlist *task_sg,
967 struct bio *bio = NULL, *tbio = NULL; 967 struct bio *bio = NULL, *tbio = NULL;
968 struct page *page; 968 struct page *page;
969 struct scatterlist *sg; 969 struct scatterlist *sg;
970 u32 data_len = task->task_size, i, len, bytes, off; 970 u32 data_len = cmd->data_length, i, len, bytes, off;
971 int nr_pages = (task->task_size + task_sg[0].offset + 971 int nr_pages = (cmd->data_length + task_sg[0].offset +
972 PAGE_SIZE - 1) >> PAGE_SHIFT; 972 PAGE_SIZE - 1) >> PAGE_SHIFT;
973 int nr_vecs = 0, rc; 973 int nr_vecs = 0, rc;
974 int rw = (task->task_data_direction == DMA_TO_DEVICE); 974 int rw = (task->task_data_direction == DMA_TO_DEVICE);
@@ -1085,7 +1085,7 @@ static int pscsi_do_task(struct se_task *task)
1085 return -ENODEV; 1085 return -ENODEV;
1086 } 1086 }
1087 } else { 1087 } else {
1088 BUG_ON(!task->task_size); 1088 BUG_ON(!cmd->data_length);
1089 1089
1090 /* 1090 /*
1091 * Setup the main struct request for the task->task_sg[] payload 1091 * Setup the main struct request for the task->task_sg[] payload
diff --git a/drivers/target/target_core_rd.c b/drivers/target/target_core_rd.c
index 0bec5729d07..c6ce46891be 100644
--- a/drivers/target/target_core_rd.c
+++ b/drivers/target/target_core_rd.c
@@ -307,7 +307,7 @@ static int rd_do_task(struct se_task *task)
307 se_dev->se_sub_dev->se_dev_attrib.block_size; 307 se_dev->se_sub_dev->se_dev_attrib.block_size;
308 rd_offset = do_div(tmp, PAGE_SIZE); 308 rd_offset = do_div(tmp, PAGE_SIZE);
309 rd_page = tmp; 309 rd_page = tmp;
310 rd_size = task->task_size; 310 rd_size = task->task_se_cmd->data_length;
311 311
312 table = rd_get_sg_table(dev, rd_page); 312 table = rd_get_sg_table(dev, rd_page);
313 if (!table) 313 if (!table)
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index 0fb3521d32d..9c9c11dc307 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -3722,7 +3722,6 @@ transport_allocate_data_tasks(struct se_cmd *cmd,
3722 3722
3723 task->task_sg = cmd_sg; 3723 task->task_sg = cmd_sg;
3724 task->task_sg_nents = sgl_nents; 3724 task->task_sg_nents = sgl_nents;
3725 task->task_size = cmd->data_length;
3726 3725
3727 task->task_sectors = sectors; 3726 task->task_sectors = sectors;
3728 3727
@@ -3749,7 +3748,6 @@ transport_allocate_control_task(struct se_cmd *cmd)
3749 return -ENOMEM; 3748 return -ENOMEM;
3750 3749
3751 task->task_sg = cmd->t_data_sg; 3750 task->task_sg = cmd->t_data_sg;
3752 task->task_size = cmd->data_length;
3753 task->task_sg_nents = cmd->t_data_nents; 3751 task->task_sg_nents = cmd->t_data_nents;
3754 3752
3755 spin_lock_irqsave(&cmd->t_state_lock, flags); 3753 spin_lock_irqsave(&cmd->t_state_lock, flags);