Commit e381fe9e authored by Bart Van Assche's avatar Bart Van Assche Committed by Nicholas Bellinger

target/iscsi: Introduce a helper function for TMF translation

This patch does not change any functionality.
Signed-off-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Cc: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 53c561dc
...@@ -1920,6 +1920,28 @@ static int iscsit_handle_nop_out(struct iscsi_conn *conn, struct iscsi_cmd *cmd, ...@@ -1920,6 +1920,28 @@ static int iscsit_handle_nop_out(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
return ret; return ret;
} }
static enum tcm_tmreq_table iscsit_convert_tmf(u8 iscsi_tmf)
{
switch (iscsi_tmf) {
case ISCSI_TM_FUNC_ABORT_TASK:
return TMR_ABORT_TASK;
case ISCSI_TM_FUNC_ABORT_TASK_SET:
return TMR_ABORT_TASK_SET;
case ISCSI_TM_FUNC_CLEAR_ACA:
return TMR_CLEAR_ACA;
case ISCSI_TM_FUNC_CLEAR_TASK_SET:
return TMR_CLEAR_TASK_SET;
case ISCSI_TM_FUNC_LOGICAL_UNIT_RESET:
return TMR_LUN_RESET;
case ISCSI_TM_FUNC_TARGET_WARM_RESET:
return TMR_TARGET_WARM_RESET;
case ISCSI_TM_FUNC_TARGET_COLD_RESET:
return TMR_TARGET_COLD_RESET;
default:
return TMR_UNKNOWN;
}
}
int int
iscsit_handle_task_mgt_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_handle_task_mgt_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
unsigned char *buf) unsigned char *buf)
...@@ -1985,30 +2007,8 @@ iscsit_handle_task_mgt_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, ...@@ -1985,30 +2007,8 @@ iscsit_handle_task_mgt_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
target_get_sess_cmd(&cmd->se_cmd, true); target_get_sess_cmd(&cmd->se_cmd, true);
sess_ref = true; sess_ref = true;
tcm_function = iscsit_convert_tmf(function);
switch (function) { if (tcm_function == TMR_UNKNOWN) {
case ISCSI_TM_FUNC_ABORT_TASK:
tcm_function = TMR_ABORT_TASK;
break;
case ISCSI_TM_FUNC_ABORT_TASK_SET:
tcm_function = TMR_ABORT_TASK_SET;
break;
case ISCSI_TM_FUNC_CLEAR_ACA:
tcm_function = TMR_CLEAR_ACA;
break;
case ISCSI_TM_FUNC_CLEAR_TASK_SET:
tcm_function = TMR_CLEAR_TASK_SET;
break;
case ISCSI_TM_FUNC_LOGICAL_UNIT_RESET:
tcm_function = TMR_LUN_RESET;
break;
case ISCSI_TM_FUNC_TARGET_WARM_RESET:
tcm_function = TMR_TARGET_WARM_RESET;
break;
case ISCSI_TM_FUNC_TARGET_COLD_RESET:
tcm_function = TMR_TARGET_COLD_RESET;
break;
default:
pr_err("Unknown iSCSI TMR Function:" pr_err("Unknown iSCSI TMR Function:"
" 0x%02x\n", function); " 0x%02x\n", function);
return iscsit_add_reject_cmd(cmd, return iscsit_add_reject_cmd(cmd,
......
...@@ -197,6 +197,7 @@ enum tcm_tmreq_table { ...@@ -197,6 +197,7 @@ enum tcm_tmreq_table {
TMR_LUN_RESET = 5, TMR_LUN_RESET = 5,
TMR_TARGET_WARM_RESET = 6, TMR_TARGET_WARM_RESET = 6,
TMR_TARGET_COLD_RESET = 7, TMR_TARGET_COLD_RESET = 7,
TMR_UNKNOWN = 0xff,
}; };
/* fabric independent task management response values */ /* fabric independent task management response values */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment