Lines Matching refs:cmd
78 static void core_tmr_handle_tas_abort(struct se_cmd *cmd, int tas) in core_tmr_handle_tas_abort() argument
85 spin_lock_irqsave(&cmd->t_state_lock, flags); in core_tmr_handle_tas_abort()
86 send_tas = (cmd->transport_state & CMD_T_TAS); in core_tmr_handle_tas_abort()
87 spin_unlock_irqrestore(&cmd->t_state_lock, flags); in core_tmr_handle_tas_abort()
91 transport_send_task_abort(cmd); in core_tmr_handle_tas_abort()
94 transport_cmd_finish_abort(cmd, remove); in core_tmr_handle_tas_abort()
98 struct se_cmd *cmd) in target_check_cdb_and_preempt() argument
105 if (reg->pr_res_key == cmd->pr_res_key) in target_check_cdb_and_preempt()
212 struct se_cmd *cmd; in core_tmr_drain_tmr_list() local
227 cmd = tmr_p->task_cmd; in core_tmr_drain_tmr_list()
228 if (!cmd) { in core_tmr_drain_tmr_list()
237 if (target_check_cdb_and_preempt(preempt_and_abort_list, cmd)) in core_tmr_drain_tmr_list()
240 sess = cmd->se_sess; in core_tmr_drain_tmr_list()
245 spin_lock(&cmd->t_state_lock); in core_tmr_drain_tmr_list()
246 if (!(cmd->transport_state & CMD_T_ACTIVE) || in core_tmr_drain_tmr_list()
247 (cmd->transport_state & CMD_T_FABRIC_STOP)) { in core_tmr_drain_tmr_list()
248 spin_unlock(&cmd->t_state_lock); in core_tmr_drain_tmr_list()
252 if (cmd->t_state == TRANSPORT_ISTATE_PROCESSING) { in core_tmr_drain_tmr_list()
253 spin_unlock(&cmd->t_state_lock); in core_tmr_drain_tmr_list()
257 if (sess->sess_tearing_down || cmd->cmd_wait_set) { in core_tmr_drain_tmr_list()
258 spin_unlock(&cmd->t_state_lock); in core_tmr_drain_tmr_list()
262 cmd->transport_state |= CMD_T_ABORTED; in core_tmr_drain_tmr_list()
263 spin_unlock(&cmd->t_state_lock); in core_tmr_drain_tmr_list()
265 rc = kref_get_unless_zero(&cmd->cmd_kref); in core_tmr_drain_tmr_list()
279 cmd = tmr_p->task_cmd; in core_tmr_drain_tmr_list()
284 tmr_p->function, tmr_p->response, cmd->t_state); in core_tmr_drain_tmr_list()
286 cancel_work_sync(&cmd->work); in core_tmr_drain_tmr_list()
287 transport_wait_for_tasks(cmd); in core_tmr_drain_tmr_list()
289 transport_cmd_finish_abort(cmd, 1); in core_tmr_drain_tmr_list()
290 target_put_sess_cmd(cmd); in core_tmr_drain_tmr_list()
303 struct se_cmd *cmd, *next; in core_tmr_drain_state_list() local
330 list_for_each_entry_safe(cmd, next, &dev->state_list, state_list) { in core_tmr_drain_state_list()
335 if (target_check_cdb_and_preempt(preempt_and_abort_list, cmd)) in core_tmr_drain_state_list()
341 if (prout_cmd == cmd) in core_tmr_drain_state_list()
344 sess = cmd->se_sess; in core_tmr_drain_state_list()
349 rc = __target_check_io_state(cmd, tmr_sess, tas); in core_tmr_drain_state_list()
354 list_move_tail(&cmd->state_list, &drain_task_list); in core_tmr_drain_state_list()
355 cmd->state_active = false; in core_tmr_drain_state_list()
360 cmd = list_entry(drain_task_list.next, struct se_cmd, state_list); in core_tmr_drain_state_list()
361 list_del_init(&cmd->state_list); in core_tmr_drain_state_list()
366 (preempt_and_abort_list) ? "Preempt" : "", cmd, in core_tmr_drain_state_list()
367 cmd->tag, 0, in core_tmr_drain_state_list()
368 cmd->se_tfo->get_cmd_state(cmd), cmd->t_state, in core_tmr_drain_state_list()
369 cmd->t_task_cdb[0]); in core_tmr_drain_state_list()
373 cmd->tag, cmd->pr_res_key, in core_tmr_drain_state_list()
374 (cmd->transport_state & CMD_T_ACTIVE) != 0, in core_tmr_drain_state_list()
375 (cmd->transport_state & CMD_T_STOP) != 0, in core_tmr_drain_state_list()
376 (cmd->transport_state & CMD_T_SENT) != 0); in core_tmr_drain_state_list()
385 cancel_work_sync(&cmd->work); in core_tmr_drain_state_list()
386 transport_wait_for_tasks(cmd); in core_tmr_drain_state_list()
388 core_tmr_handle_tas_abort(cmd, tas); in core_tmr_drain_state_list()
389 target_put_sess_cmd(cmd); in core_tmr_drain_state_list()