• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/s390/scsi/

Lines Matching defs:erp_action

94 		zfcp_erp_action_dismiss(&unit->erp_action);
102 zfcp_erp_action_dismiss(&port->erp_action);
116 zfcp_erp_action_dismiss(&adapter->erp_action);
177 struct zfcp_erp_action *erp_action;
185 erp_action = &unit->erp_action;
196 erp_action = &port->erp_action;
205 erp_action = &adapter->erp_action;
215 memset(erp_action, 0, sizeof(struct zfcp_erp_action));
216 erp_action->adapter = adapter;
217 erp_action->port = port;
218 erp_action->unit = unit;
219 erp_action->action = need;
220 erp_action->status = status;
222 return erp_action;
477 static void zfcp_erp_action_to_running(struct zfcp_erp_action *erp_action)
479 list_move(&erp_action->list, &erp_action->adapter->erp_running_head);
480 zfcp_dbf_rec_action("erator1", erp_action);
493 if (req && req->erp_action == act) {
498 req->erp_action = NULL;
511 * @erp_action: ERP action to continue.
514 void zfcp_erp_notify(struct zfcp_erp_action *erp_action, unsigned long set_mask)
516 struct zfcp_adapter *adapter = erp_action->adapter;
520 if (zfcp_erp_action_exists(erp_action) == ZFCP_ERP_ACTION_RUNNING) {
521 erp_action->status |= set_mask;
522 zfcp_erp_action_ready(erp_action);
542 static void zfcp_erp_strategy_memwait(struct zfcp_erp_action *erp_action)
544 init_timer(&erp_action->timer);
545 erp_action->timer.function = zfcp_erp_memwait_handler;
546 erp_action->timer.data = (unsigned long) erp_action;
547 erp_action->timer.expires = jiffies + HZ;
548 add_timer(&erp_action->timer);
641 static int zfcp_erp_adapter_strat_fsf_xconf(struct zfcp_erp_action *erp_action)
645 struct zfcp_adapter *adapter = erp_action->adapter;
653 zfcp_erp_action_to_running(erp_action);
655 if (zfcp_fsf_exchange_config_data(erp_action)) {
665 if (erp_action->status & ZFCP_STATUS_ERP_TIMEDOUT)
811 static int zfcp_erp_port_forced_strategy(struct zfcp_erp_action *erp_action)
813 struct zfcp_port *port = erp_action->port;
816 switch (erp_action->step) {
821 return zfcp_erp_port_forced_strategy_close(erp_action);
832 static int zfcp_erp_port_strategy_close(struct zfcp_erp_action *erp_action)
836 retval = zfcp_fsf_close_port(erp_action);
839 erp_action->step = ZFCP_ERP_STEP_PORT_CLOSING;
845 static int zfcp_erp_port_strategy_open_port(struct zfcp_erp_action *erp_action)
849 retval = zfcp_fsf_open_port(erp_action);
852 erp_action->step = ZFCP_ERP_STEP_PORT_OPENING;
907 static int zfcp_erp_port_strategy(struct zfcp_erp_action *erp_action)
909 struct zfcp_port *port = erp_action->port;
916 switch (erp_action->step) {
920 return zfcp_erp_port_strategy_close(erp_action);
930 if (erp_action->status & ZFCP_STATUS_ERP_CLOSE_ONLY)
933 return zfcp_erp_port_strategy_open_common(erp_action);
944 static int zfcp_erp_unit_strategy_close(struct zfcp_erp_action *erp_action)
946 int retval = zfcp_fsf_close_unit(erp_action);
949 erp_action->step = ZFCP_ERP_STEP_UNIT_CLOSING;
955 static int zfcp_erp_unit_strategy_open(struct zfcp_erp_action *erp_action)
957 int retval = zfcp_fsf_open_unit(erp_action);
960 erp_action->step = ZFCP_ERP_STEP_UNIT_OPENING;
966 static int zfcp_erp_unit_strategy(struct zfcp_erp_action *erp_action)
968 struct zfcp_unit *unit = erp_action->unit;
970 switch (erp_action->step) {
974 return zfcp_erp_unit_strategy_close(erp_action);
979 if (erp_action->status & ZFCP_STATUS_ERP_CLOSE_ONLY)
981 return zfcp_erp_unit_strategy_open(erp_action);
1074 static int zfcp_erp_strategy_check_target(struct zfcp_erp_action *erp_action,
1077 struct zfcp_adapter *adapter = erp_action->adapter;
1078 struct zfcp_port *port = erp_action->port;
1079 struct zfcp_unit *unit = erp_action->unit;
1081 switch (erp_action->action) {
1154 static void zfcp_erp_action_dequeue(struct zfcp_erp_action *erp_action)
1156 struct zfcp_adapter *adapter = erp_action->adapter;
1159 if (erp_action->status & ZFCP_STATUS_ERP_LOWMEM) {
1161 erp_action->status &= ~ZFCP_STATUS_ERP_LOWMEM;
1164 list_del(&erp_action->list);
1165 zfcp_dbf_rec_action("eractd1", erp_action);
1167 switch (erp_action->action) {
1170 &erp_action->unit->status);
1176 &erp_action->port->status);
1181 &erp_action->adapter->status);
1216 static int zfcp_erp_strategy_do_action(struct zfcp_erp_action *erp_action)
1218 switch (erp_action->action) {
1220 return zfcp_erp_adapter_strategy(erp_action);
1222 return zfcp_erp_port_forced_strategy(erp_action);
1224 return zfcp_erp_port_strategy(erp_action);
1226 return zfcp_erp_unit_strategy(erp_action);
1231 static int zfcp_erp_strategy(struct zfcp_erp_action *erp_action)
1235 struct zfcp_adapter *adapter = erp_action->adapter;
1240 zfcp_erp_strategy_check_fsfreq(erp_action);
1242 if (erp_action->status & ZFCP_STATUS_ERP_DISMISSED) {
1243 zfcp_erp_action_dequeue(erp_action);
1248 if (erp_action->status & ZFCP_STATUS_ERP_TIMEDOUT) {
1253 zfcp_erp_action_to_running(erp_action);
1257 retval = zfcp_erp_strategy_do_action(erp_action);
1260 if (erp_action->status & ZFCP_STATUS_ERP_DISMISSED)
1265 if (!(erp_action->status & ZFCP_STATUS_ERP_LOWMEM)) {
1267 erp_action->status |= ZFCP_STATUS_ERP_LOWMEM;
1272 zfcp_erp_strategy_memwait(erp_action);
1278 if (erp_action->status & ZFCP_STATUS_ERP_LOWMEM) {
1280 erp_action->status &= ~ZFCP_STATUS_ERP_LOWMEM;
1286 retval = zfcp_erp_strategy_check_target(erp_action, retval);
1287 zfcp_erp_action_dequeue(erp_action);
1288 retval = zfcp_erp_strategy_statechange(erp_action, retval);
1292 zfcp_erp_strategy_followup_success(erp_action);
1294 zfcp_erp_strategy_followup_failed(erp_action);
1300 zfcp_erp_action_cleanup(erp_action, retval);