target/iscsi: Introduce a helper function for TMF translation
authorBart Van Assche <bart.vanassche@sandisk.com>
Fri, 6 Jan 2017 10:32:08 +0000 (11:32 +0100)
committerNicholas Bellinger <nab@linux-iscsi.org>
Thu, 9 Feb 2017 08:39:09 +0000 (00:39 -0800)
This patch does not change any functionality.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/iscsi/iscsi_target.c
include/target/target_core_base.h

index e11f8d0f1fa33a4894357eed09cad416238f4c1a..d16729fa1f67fa9f0e43fe2f0d111173528f391c 100644 (file)
@@ -1920,6 +1920,28 @@ out:
        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
 iscsit_handle_task_mgt_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
                           unsigned char *buf)
@@ -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);
                sess_ref = true;
-
-               switch (function) {
-               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:
+               tcm_function = iscsit_convert_tmf(function);
+               if (tcm_function == TMR_UNKNOWN) {
                        pr_err("Unknown iSCSI TMR Function:"
                               " 0x%02x\n", function);
                        return iscsit_add_reject_cmd(cmd,
index da854fb4530f1f75e9f46a8ad57ec0251217fd7b..92d5628775c2f8878d65bc7e214e9ed6dc758653 100644 (file)
@@ -197,6 +197,7 @@ enum tcm_tmreq_table {
        TMR_LUN_RESET           = 5,
        TMR_TARGET_WARM_RESET   = 6,
        TMR_TARGET_COLD_RESET   = 7,
+       TMR_UNKNOWN             = 0xff,
 };
 
 /* fabric independent task management response values */