Move core_alua_check_nonop_delay() to transport_handle_cdb_direct() so the
iSCSI target driver doesn't have to call as many core functions
directly. We will eventually merge transport_handle_cdb_direct and
target_submit so iSCSI and the other drivers call a common function.
It will also be helpful as preparation for future changes which allow the
iSCSI target to defer command submission to the LIO submission workqueue,
because we will have a common submission function for that which will be
based on transport_handle_cdb_direct()/target_submit().
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Link: https://lore.kernel.org/r/20230928020907.5730-3-michael.christie@oracle.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
 
        spin_lock_bh(&conn->cmd_lock);
        list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
        spin_unlock_bh(&conn->cmd_lock);
-       /*
-        * Check if we need to delay processing because of ALUA
-        * Active/NonOptimized primary access state..
-        */
-       core_alua_check_nonop_delay(&cmd->se_cmd);
-
        return 0;
 }
 EXPORT_SYMBOL(iscsit_setup_scsi_cmd);
 
        msleep_interruptible(cmd->alua_nonop_delay);
        return 0;
 }
-EXPORT_SYMBOL(core_alua_check_nonop_delay);
 
 static int core_alua_write_tpg_metadata(
        const char *path,
 
 
        might_sleep();
 
+       /*
+        * Check if we need to delay processing because of ALUA
+        * Active/NonOptimized primary access state..
+        */
+       core_alua_check_nonop_delay(cmd);
+
        if (!cmd->se_lun) {
                dump_stack();
                pr_err("cmd->se_lun is NULL\n");
 
        }
 
-       /*
-        * Check if we need to delay processing because of ALUA
-        * Active/NonOptimized primary access state..
-        */
-       core_alua_check_nonop_delay(se_cmd);
-
        transport_handle_cdb_direct(se_cmd);
 }
 EXPORT_SYMBOL_GPL(target_submit);
 
 void   target_wait_for_sess_cmds(struct se_session *);
 void   target_show_cmd(const char *pfx, struct se_cmd *cmd);
 
-int    core_alua_check_nonop_delay(struct se_cmd *);
-
 int    core_tmr_alloc_req(struct se_cmd *, void *, u8, gfp_t);
 void   core_tmr_release_req(struct se_tmr_req *);
 int    transport_generic_handle_tmr(struct se_cmd *);