Lines Matching refs:cmd

81 static void core_tmr_handle_tas_abort(struct se_cmd *cmd, int tas)  in core_tmr_handle_tas_abort()  argument
88 spin_lock_irqsave(&cmd->t_state_lock, flags); in core_tmr_handle_tas_abort()
89 send_tas = (cmd->transport_state & CMD_T_TAS); in core_tmr_handle_tas_abort()
90 spin_unlock_irqrestore(&cmd->t_state_lock, flags); in core_tmr_handle_tas_abort()
94 transport_send_task_abort(cmd); in core_tmr_handle_tas_abort()
97 transport_cmd_finish_abort(cmd, remove); in core_tmr_handle_tas_abort()
101 struct se_cmd *cmd) in target_check_cdb_and_preempt() argument
108 if (reg->pr_res_key == cmd->pr_res_key) in target_check_cdb_and_preempt()
217 struct se_cmd *cmd; in core_tmr_drain_tmr_list() local
232 cmd = tmr_p->task_cmd; in core_tmr_drain_tmr_list()
233 if (!cmd) { in core_tmr_drain_tmr_list()
242 if (target_check_cdb_and_preempt(preempt_and_abort_list, cmd)) in core_tmr_drain_tmr_list()
245 sess = cmd->se_sess; in core_tmr_drain_tmr_list()
250 spin_lock(&cmd->t_state_lock); in core_tmr_drain_tmr_list()
251 if (!(cmd->transport_state & CMD_T_ACTIVE) || in core_tmr_drain_tmr_list()
252 (cmd->transport_state & CMD_T_FABRIC_STOP)) { in core_tmr_drain_tmr_list()
253 spin_unlock(&cmd->t_state_lock); in core_tmr_drain_tmr_list()
257 if (cmd->t_state == TRANSPORT_ISTATE_PROCESSING) { in core_tmr_drain_tmr_list()
258 spin_unlock(&cmd->t_state_lock); in core_tmr_drain_tmr_list()
262 if (sess->sess_tearing_down || cmd->cmd_wait_set) { in core_tmr_drain_tmr_list()
263 spin_unlock(&cmd->t_state_lock); in core_tmr_drain_tmr_list()
267 cmd->transport_state |= CMD_T_ABORTED; in core_tmr_drain_tmr_list()
268 spin_unlock(&cmd->t_state_lock); in core_tmr_drain_tmr_list()
270 rc = kref_get_unless_zero(&cmd->cmd_kref); in core_tmr_drain_tmr_list()
284 cmd = tmr_p->task_cmd; in core_tmr_drain_tmr_list()
289 tmr_p->function, tmr_p->response, cmd->t_state); in core_tmr_drain_tmr_list()
291 cancel_work_sync(&cmd->work); in core_tmr_drain_tmr_list()
292 transport_wait_for_tasks(cmd); in core_tmr_drain_tmr_list()
294 transport_cmd_finish_abort(cmd, 1); in core_tmr_drain_tmr_list()
295 target_put_sess_cmd(cmd); in core_tmr_drain_tmr_list()
308 struct se_cmd *cmd, *next; in core_tmr_drain_state_list() local
335 list_for_each_entry_safe(cmd, next, &dev->state_list, state_list) { in core_tmr_drain_state_list()
340 if (target_check_cdb_and_preempt(preempt_and_abort_list, cmd)) in core_tmr_drain_state_list()
346 if (prout_cmd == cmd) in core_tmr_drain_state_list()
349 sess = cmd->se_sess; in core_tmr_drain_state_list()
354 rc = __target_check_io_state(cmd, tmr_sess, tas); in core_tmr_drain_state_list()
359 list_move_tail(&cmd->state_list, &drain_task_list); in core_tmr_drain_state_list()
360 cmd->state_active = false; in core_tmr_drain_state_list()
365 cmd = list_entry(drain_task_list.next, struct se_cmd, state_list); in core_tmr_drain_state_list()
366 list_del_init(&cmd->state_list); in core_tmr_drain_state_list()
371 (preempt_and_abort_list) ? "Preempt" : "", cmd, in core_tmr_drain_state_list()
372 cmd->se_tfo->get_task_tag(cmd), 0, in core_tmr_drain_state_list()
373 cmd->se_tfo->get_cmd_state(cmd), cmd->t_state, in core_tmr_drain_state_list()
374 cmd->t_task_cdb[0]); in core_tmr_drain_state_list()
378 cmd->se_tfo->get_task_tag(cmd), cmd->pr_res_key, in core_tmr_drain_state_list()
379 (cmd->transport_state & CMD_T_ACTIVE) != 0, in core_tmr_drain_state_list()
380 (cmd->transport_state & CMD_T_STOP) != 0, in core_tmr_drain_state_list()
381 (cmd->transport_state & CMD_T_SENT) != 0); in core_tmr_drain_state_list()
390 cancel_work_sync(&cmd->work); in core_tmr_drain_state_list()
391 transport_wait_for_tasks(cmd); in core_tmr_drain_state_list()
393 core_tmr_handle_tas_abort(cmd, tas); in core_tmr_drain_state_list()
394 target_put_sess_cmd(cmd); in core_tmr_drain_state_list()