Lines Matching refs:act

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