X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Ftarget%2Ftarget_core_device.c;h=ba5edec2c5f858edaa011a463fae7bb31ad2a008;hb=32aaeffbd4a7457bf2f7448b33b5946ff2a960eb;hp=f870c3bcfd829f1dd68795cd017553441234911f;hpb=9060c05b503d9aa2c271d8946132a3ab2882bff2;p=~andy%2Flinux diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c index f870c3bcfd8..ba5edec2c5f 100644 --- a/drivers/target/target_core_device.c +++ b/drivers/target/target_core_device.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -651,23 +652,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); /* @@ -713,6 +706,8 @@ done: buf[2] = ((lun_count >> 8) & 0xff); buf[3] = (lun_count & 0xff); + se_task->task_scsi_status = GOOD; + transport_complete_task(se_task, 1); return PYX_TRANSPORT_SENT_TO_TRANSPORT; }