diff options
author | Christoph Hellwig <hch@infradead.org> | 2011-11-03 17:50:42 -0400 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2011-11-04 08:00:17 +0000 |
commit | e76a35d6c809bd1638e3b1b535bb780ac731c380 (patch) | |
tree | a67bbbbc16cb4e612015da8b0f86fe981d1a5f77 /drivers/target/target_core_device.c | |
parent | 617c0e06c1b30b799d8b25f92eefdc1b098cb9f8 (diff) | |
download | kernel_goldelico_gta04-e76a35d6c809bd1638e3b1b535bb780ac731c380.zip kernel_goldelico_gta04-e76a35d6c809bd1638e3b1b535bb780ac731c380.tar.gz kernel_goldelico_gta04-e76a35d6c809bd1638e3b1b535bb780ac731c380.tar.bz2 |
target: pass the se_task to the CDB emulation callback
We want to be able to handle all CDBs through it and remove hacks like
always using the first task in a CDB in target_report_luns.
Also rename the callback to ->execute_task to better describe its use.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/target_core_device.c')
-rw-r--r-- | drivers/target/target_core_device.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c index f870c3b..ffbb1d6 100644 --- a/drivers/target/target_core_device.c +++ b/drivers/target/target_core_device.c @@ -651,23 +651,15 @@ void core_dev_unexport( lun->lun_se_dev = NULL; } -int transport_core_report_lun_response(struct se_cmd *se_cmd) +int target_report_luns(struct se_task *se_task) { + struct se_cmd *se_cmd = se_task->task_se_cmd; struct se_dev_entry *deve; struct se_lun *se_lun; struct se_session *se_sess = se_cmd->se_sess; - struct se_task *se_task; unsigned char *buf; u32 cdb_offset = 0, lun_count = 0, offset = 8, i; - list_for_each_entry(se_task, &se_cmd->t_task_list, t_list) - break; - - if (!se_task) { - pr_err("Unable to locate struct se_task for struct se_cmd\n"); - return PYX_TRANSPORT_LU_COMM_FAILURE; - } - buf = transport_kmap_first_data_page(se_cmd); /* |