Lines Matching refs:act

57 static bool zfcp_erp_action_is_running(struct zfcp_erp_action *act)  in zfcp_erp_action_is_running()  argument
61 list_for_each_entry(curr_act, &act->adapter->erp_running_head, list) in zfcp_erp_action_is_running()
62 if (act == curr_act) in zfcp_erp_action_is_running()
67 static void zfcp_erp_action_ready(struct zfcp_erp_action *act) in zfcp_erp_action_ready() argument
69 struct zfcp_adapter *adapter = act->adapter; in zfcp_erp_action_ready()
71 list_move(&act->list, &adapter->erp_ready_head); in zfcp_erp_action_ready()
72 zfcp_dbf_rec_run("erardy1", act); in zfcp_erp_action_ready()
74 zfcp_dbf_rec_run("erardy2", act); in zfcp_erp_action_ready()
77 static void zfcp_erp_action_dismiss(struct zfcp_erp_action *act) in zfcp_erp_action_dismiss() argument
79 act->status |= ZFCP_STATUS_ERP_DISMISSED; in zfcp_erp_action_dismiss()
80 if (zfcp_erp_action_is_running(act)) in zfcp_erp_action_dismiss()
81 zfcp_erp_action_ready(act); in zfcp_erp_action_dismiss()
288 struct zfcp_erp_action *act; in zfcp_erp_action_enqueue() local
305 act = zfcp_erp_setup_act(need, act_status, adapter, port, sdev); in zfcp_erp_action_enqueue()
306 if (!act) { in zfcp_erp_action_enqueue()
312 list_add_tail(&act->list, &adapter->erp_ready_head); in zfcp_erp_action_enqueue()
565 static void zfcp_erp_strategy_check_fsfreq(struct zfcp_erp_action *act) in zfcp_erp_strategy_check_fsfreq() argument
567 struct zfcp_adapter *adapter = act->adapter; in zfcp_erp_strategy_check_fsfreq()
570 if (!act->fsf_req_id) in zfcp_erp_strategy_check_fsfreq()
574 req = _zfcp_reqlist_find(adapter->req_list, act->fsf_req_id); in zfcp_erp_strategy_check_fsfreq()
575 if (req && req->erp_action == act) { in zfcp_erp_strategy_check_fsfreq()
576 if (act->status & (ZFCP_STATUS_ERP_DISMISSED | in zfcp_erp_strategy_check_fsfreq()
579 zfcp_dbf_rec_run("erscf_1", act); in zfcp_erp_strategy_check_fsfreq()
585 if (act->status & ZFCP_STATUS_ERP_TIMEDOUT) in zfcp_erp_strategy_check_fsfreq()
586 zfcp_dbf_rec_run("erscf_2", act); in zfcp_erp_strategy_check_fsfreq()
588 act->fsf_req_id = 0; in zfcp_erp_strategy_check_fsfreq()
590 act->fsf_req_id = 0; in zfcp_erp_strategy_check_fsfreq()
619 struct zfcp_erp_action *act; in zfcp_erp_timeout_handler() local
624 act = READ_ONCE(fsf_req->erp_action); in zfcp_erp_timeout_handler()
625 if (!act) in zfcp_erp_timeout_handler()
627 zfcp_erp_notify(act, ZFCP_STATUS_ERP_TIMEDOUT); in zfcp_erp_timeout_handler()
632 struct zfcp_erp_action *act = from_timer(act, t, timer); in zfcp_erp_memwait_handler() local
634 zfcp_erp_notify(act, 0); in zfcp_erp_memwait_handler()
681 static void zfcp_erp_strategy_followup_failed(struct zfcp_erp_action *act) in zfcp_erp_strategy_followup_failed() argument
683 switch (act->type) { in zfcp_erp_strategy_followup_failed()
685 _zfcp_erp_adapter_reopen(act->adapter, 0, "ersff_1"); in zfcp_erp_strategy_followup_failed()
688 _zfcp_erp_port_forced_reopen(act->port, 0, "ersff_2"); in zfcp_erp_strategy_followup_failed()
691 _zfcp_erp_port_reopen(act->port, 0, "ersff_3"); in zfcp_erp_strategy_followup_failed()
694 _zfcp_erp_lun_reopen(act->sdev, 0, "ersff_4", 0); in zfcp_erp_strategy_followup_failed()
699 static void zfcp_erp_strategy_followup_success(struct zfcp_erp_action *act) in zfcp_erp_strategy_followup_success() argument
701 switch (act->type) { in zfcp_erp_strategy_followup_success()
703 _zfcp_erp_port_reopen_all(act->adapter, 0, "ersfs_1"); in zfcp_erp_strategy_followup_success()
706 _zfcp_erp_port_reopen(act->port, 0, "ersfs_2"); in zfcp_erp_strategy_followup_success()
709 _zfcp_erp_lun_reopen_all(act->port, 0, "ersfs_3"); in zfcp_erp_strategy_followup_success()
792 struct zfcp_erp_action *act) in zfcp_erp_adapter_strategy_open_fsf_xport() argument
795 struct zfcp_adapter *adapter = act->adapter; in zfcp_erp_adapter_strategy_open_fsf_xport()
798 zfcp_erp_action_to_running(act); in zfcp_erp_adapter_strategy_open_fsf_xport()
801 ret = zfcp_fsf_exchange_port_data(act); in zfcp_erp_adapter_strategy_open_fsf_xport()
807 zfcp_dbf_rec_run("erasox1", act); in zfcp_erp_adapter_strategy_open_fsf_xport()
810 zfcp_dbf_rec_run("erasox2", act); in zfcp_erp_adapter_strategy_open_fsf_xport()
811 if (act->status & ZFCP_STATUS_ERP_TIMEDOUT) in zfcp_erp_adapter_strategy_open_fsf_xport()
871 struct zfcp_erp_action *act) in zfcp_erp_adapter_strategy_open_fsf() argument
873 if (zfcp_erp_adapter_strat_fsf_xconf(act) == ZFCP_ERP_FAILED) in zfcp_erp_adapter_strategy_open_fsf()
876 if (zfcp_erp_adapter_strategy_open_fsf_xport(act) == ZFCP_ERP_FAILED) in zfcp_erp_adapter_strategy_open_fsf()
879 if (zfcp_erp_adapter_strategy_alloc_shost(act->adapter) == in zfcp_erp_adapter_strategy_open_fsf()
883 zfcp_erp_adapter_strategy_open_ptp_port(act->adapter); in zfcp_erp_adapter_strategy_open_fsf()
885 if (mempool_resize(act->adapter->pool.sr_data, in zfcp_erp_adapter_strategy_open_fsf()
886 act->adapter->stat_read_buf_num)) in zfcp_erp_adapter_strategy_open_fsf()
889 if (mempool_resize(act->adapter->pool.status_read_req, in zfcp_erp_adapter_strategy_open_fsf()
890 act->adapter->stat_read_buf_num)) in zfcp_erp_adapter_strategy_open_fsf()
893 atomic_set(&act->adapter->stat_miss, act->adapter->stat_read_buf_num); in zfcp_erp_adapter_strategy_open_fsf()
894 if (zfcp_status_read_refill(act->adapter)) in zfcp_erp_adapter_strategy_open_fsf()
900 static void zfcp_erp_adapter_strategy_close(struct zfcp_erp_action *act) in zfcp_erp_adapter_strategy_close() argument
902 struct zfcp_adapter *adapter = act->adapter; in zfcp_erp_adapter_strategy_close()
917 struct zfcp_erp_action *act) in zfcp_erp_adapter_strategy_open() argument
919 struct zfcp_adapter *adapter = act->adapter; in zfcp_erp_adapter_strategy_open()
928 if (zfcp_erp_adapter_strategy_open_fsf(act)) { in zfcp_erp_adapter_strategy_open()
929 zfcp_erp_adapter_strategy_close(act); in zfcp_erp_adapter_strategy_open()
939 struct zfcp_erp_action *act) in zfcp_erp_adapter_strategy() argument
941 struct zfcp_adapter *adapter = act->adapter; in zfcp_erp_adapter_strategy()
944 zfcp_erp_adapter_strategy_close(act); in zfcp_erp_adapter_strategy()
945 if (act->status & ZFCP_STATUS_ERP_CLOSE_ONLY) in zfcp_erp_adapter_strategy()
949 if (zfcp_erp_adapter_strategy_open(act)) { in zfcp_erp_adapter_strategy()
958 struct zfcp_erp_action *act) in zfcp_erp_port_forced_strategy_close() argument
962 retval = zfcp_fsf_close_physical_port(act); in zfcp_erp_port_forced_strategy_close()
965 act->step = ZFCP_ERP_STEP_PHYS_PORT_CLOSING; in zfcp_erp_port_forced_strategy_close()
1028 static int zfcp_erp_open_ptp_port(struct zfcp_erp_action *act) in zfcp_erp_open_ptp_port() argument
1030 struct zfcp_adapter *adapter = act->adapter; in zfcp_erp_open_ptp_port()
1031 struct zfcp_port *port = act->port; in zfcp_erp_open_ptp_port()
1038 return zfcp_erp_port_strategy_open_port(act); in zfcp_erp_open_ptp_port()
1042 struct zfcp_erp_action *act) in zfcp_erp_port_strategy_open_common() argument
1044 struct zfcp_adapter *adapter = act->adapter; in zfcp_erp_port_strategy_open_common()
1045 struct zfcp_port *port = act->port; in zfcp_erp_port_strategy_open_common()
1048 switch (act->step) { in zfcp_erp_port_strategy_open_common()
1053 return zfcp_erp_open_ptp_port(act); in zfcp_erp_port_strategy_open_common()
1058 return zfcp_erp_port_strategy_open_port(act); in zfcp_erp_port_strategy_open_common()
1333 struct zfcp_erp_action *act, enum zfcp_erp_act_result result) in zfcp_erp_strategy_statechange() argument
1335 enum zfcp_erp_act_type type = act->type; in zfcp_erp_strategy_statechange()
1336 struct zfcp_adapter *adapter = act->adapter; in zfcp_erp_strategy_statechange()
1337 struct zfcp_port *port = act->port; in zfcp_erp_strategy_statechange()
1338 struct scsi_device *sdev = act->sdev; in zfcp_erp_strategy_statechange()
1340 u32 erp_status = act->status; in zfcp_erp_strategy_statechange()
1468 static void zfcp_erp_action_cleanup(struct zfcp_erp_action *act, in zfcp_erp_action_cleanup() argument
1471 struct zfcp_adapter *adapter = act->adapter; in zfcp_erp_action_cleanup()
1472 struct zfcp_port *port = act->port; in zfcp_erp_action_cleanup()
1473 struct scsi_device *sdev = act->sdev; in zfcp_erp_action_cleanup()
1475 switch (act->type) { in zfcp_erp_action_cleanup()
1477 if (!(act->status & ZFCP_STATUS_ERP_NO_REF)) in zfcp_erp_action_cleanup()
1488 if (act->step != ZFCP_ERP_STEP_UNINITIALIZED) in zfcp_erp_action_cleanup()
1610 struct zfcp_erp_action *act; in zfcp_erp_thread() local
1622 act = list_first_entry_or_null(&adapter->erp_ready_head, in zfcp_erp_thread()
1626 if (act) { in zfcp_erp_thread()
1628 if (zfcp_erp_strategy(act) != ZFCP_ERP_DISMISSED) in zfcp_erp_thread()