• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/s390/scsi/

Lines Matching refs:erp_action

783 zfcp_erp_action_ready(struct zfcp_erp_action *erp_action)
785 struct zfcp_adapter *adapter = erp_action->adapter;
788 debug_event(adapter->erp_dbf, 4, &erp_action->action, sizeof (int));
790 zfcp_erp_action_to_ready(erp_action);
799 * returns: <0 erp_action not found in any list
800 * ZFCP_ERP_ACTION_READY erp_action is in ready list
801 * ZFCP_ERP_ACTION_RUNNING erp_action is in running list
806 zfcp_erp_action_exists(struct zfcp_erp_action *erp_action)
811 struct zfcp_adapter *adapter = erp_action->adapter;
817 if (entry_erp_action == erp_action) {
826 if (entry_erp_action == erp_action) {
843 zfcp_erp_strategy_check_fsfreq(struct zfcp_erp_action *erp_action)
845 struct zfcp_adapter *adapter = erp_action->adapter;
847 if (erp_action->fsf_req) {
850 if (zfcp_reqlist_find(adapter, erp_action->fsf_req->req_id)) {
853 debug_event(adapter->erp_dbf, 3, &erp_action->fsf_req,
855 /* dismiss fsf_req of timed out/dismissed erp_action */
856 if (erp_action->status & (ZFCP_STATUS_ERP_DISMISSED |
860 erp_action->fsf_req->status |=
863 if (erp_action->status & ZFCP_STATUS_ERP_TIMEDOUT) {
866 erp_action->action,
867 erp_action->fsf_req);
872 * with the association of erp_action and fsf_req.
874 if (erp_action->fsf_req->status &
878 and erp_action */
879 erp_action->fsf_req = NULL;
885 * association between erp_action and fsf_req
887 erp_action->fsf_req = NULL;
895 * zfcp_erp_async_handler_nolock - complete erp_action
900 static void zfcp_erp_async_handler_nolock(struct zfcp_erp_action *erp_action,
903 struct zfcp_adapter *adapter = erp_action->adapter;
905 if (zfcp_erp_action_exists(erp_action) == ZFCP_ERP_ACTION_RUNNING) {
907 debug_event(adapter->erp_dbf, 2, &erp_action->action,
909 erp_action->status |= set_mask;
910 zfcp_erp_action_ready(erp_action);
914 debug_event(adapter->erp_dbf, 3, &erp_action->action,
922 void zfcp_erp_async_handler(struct zfcp_erp_action *erp_action,
925 struct zfcp_adapter *adapter = erp_action->adapter;
929 zfcp_erp_async_handler_nolock(erp_action, set_mask);
934 * purpose: is called for erp_action which was slept waiting for
941 struct zfcp_erp_action *erp_action = (struct zfcp_erp_action *) data;
942 struct zfcp_adapter *adapter = erp_action->adapter;
945 debug_event(adapter->erp_dbf, 2, &erp_action->action, sizeof (int));
947 zfcp_erp_async_handler(erp_action, 0);
957 struct zfcp_erp_action *erp_action = (struct zfcp_erp_action *) data;
958 struct zfcp_adapter *adapter = erp_action->adapter;
961 debug_event(adapter->erp_dbf, 2, &erp_action->action, sizeof (int));
963 zfcp_erp_async_handler(erp_action, ZFCP_STATUS_ERP_TIMEDOUT);
967 * zfcp_erp_action_dismiss - dismiss an erp_action
971 * Dismissal of an erp_action is usually required if an erp_action of
974 static void zfcp_erp_action_dismiss(struct zfcp_erp_action *erp_action)
976 struct zfcp_adapter *adapter = erp_action->adapter;
979 debug_event(adapter->erp_dbf, 2, &erp_action->action, sizeof (int));
981 zfcp_erp_async_handler_nolock(erp_action, ZFCP_STATUS_ERP_DISMISSED);
1053 struct zfcp_erp_action *erp_action;
1071 erp_action =
1077 zfcp_erp_strategy(erp_action);
1109 zfcp_erp_strategy(struct zfcp_erp_action *erp_action)
1112 struct zfcp_adapter *adapter = erp_action->adapter;
1113 struct zfcp_port *port = erp_action->port;
1114 struct zfcp_unit *unit = erp_action->unit;
1115 int action = erp_action->action;
1116 u32 status = erp_action->status;
1124 retval = zfcp_erp_strategy_check_action(erp_action, retval);
1135 zfcp_erp_action_to_running(erp_action);
1151 retval = zfcp_erp_strategy_do_action(erp_action);
1159 retval = zfcp_erp_strategy_check_action(erp_action, retval);
1168 if (!(erp_action->status & ZFCP_STATUS_ERP_LOWMEM)) {
1170 erp_action->status |= ZFCP_STATUS_ERP_LOWMEM;
1173 for any erp_action on this adapter. This implies that there
1175 This might happen if an erp_action that used a memory pool
1187 retval = zfcp_erp_strategy_memwait(erp_action);
1193 if (erp_action->status & ZFCP_STATUS_ERP_LOWMEM) {
1195 erp_action->status &= ~ZFCP_STATUS_ERP_LOWMEM;
1202 retval = zfcp_erp_strategy_check_target(erp_action, retval);
1205 zfcp_erp_action_dequeue(erp_action);
1261 zfcp_erp_strategy_check_action(struct zfcp_erp_action *erp_action, int retval)
1263 struct zfcp_adapter *adapter = erp_action->adapter;
1265 zfcp_erp_strategy_check_fsfreq(erp_action);
1267 debug_event(adapter->erp_dbf, 5, &erp_action->action, sizeof (int));
1268 if (erp_action->status & ZFCP_STATUS_ERP_DISMISSED) {
1270 zfcp_erp_action_dequeue(erp_action);
1279 zfcp_erp_strategy_do_action(struct zfcp_erp_action *erp_action)
1282 struct zfcp_adapter *adapter = erp_action->adapter;
1293 switch (erp_action->action) {
1296 retval = zfcp_erp_adapter_strategy(erp_action);
1300 retval = zfcp_erp_port_forced_strategy(erp_action);
1304 retval = zfcp_erp_port_strategy(erp_action);
1308 retval = zfcp_erp_unit_strategy(erp_action);
1313 debug_event(adapter->erp_dbf, 1, &erp_action->action,
1317 zfcp_get_busid_by_adapter(erp_action->adapter),
1318 erp_action->action);
1328 * by means of timer provided by erp_action
1330 * returns: ZFCP_ERP_CONTINUES - erp_action sleeps in erp running queue
1333 zfcp_erp_strategy_memwait(struct zfcp_erp_action *erp_action)
1336 struct zfcp_adapter *adapter = erp_action->adapter;
1339 debug_event(adapter->erp_dbf, 6, &erp_action->action, sizeof (int));
1340 init_timer(&erp_action->timer);
1341 erp_action->timer.function = zfcp_erp_memwait_handler;
1342 erp_action->timer.data = (unsigned long) erp_action;
1343 erp_action->timer.expires = jiffies + ZFCP_ERP_MEMWAIT_TIMEOUT;
1344 add_timer(&erp_action->timer);
1424 zfcp_erp_strategy_check_target(struct zfcp_erp_action *erp_action, int result)
1426 struct zfcp_adapter *adapter = erp_action->adapter;
1427 struct zfcp_port *port = erp_action->port;
1428 struct zfcp_unit *unit = erp_action->unit;
1431 debug_event(adapter->erp_dbf, 5, &erp_action->action, sizeof (int));
1434 switch (erp_action->action) {
1879 zfcp_erp_adapter_strategy(struct zfcp_erp_action *erp_action)
1882 struct zfcp_adapter *adapter = erp_action->adapter;
1884 retval = zfcp_erp_adapter_strategy_close(erp_action);
1885 if (erp_action->status & ZFCP_STATUS_ERP_CLOSE_ONLY)
1888 retval = zfcp_erp_adapter_strategy_open(erp_action);
1891 debug_event(adapter->erp_dbf, 3, &erp_action->action, sizeof (int));
1913 zfcp_erp_adapter_strategy_close(struct zfcp_erp_action *erp_action)
1918 &erp_action->adapter->status);
1919 retval = zfcp_erp_adapter_strategy_generic(erp_action, 1);
1921 &erp_action->adapter->status);
1935 zfcp_erp_adapter_strategy_open(struct zfcp_erp_action *erp_action)
1940 &erp_action->adapter->status);
1941 retval = zfcp_erp_adapter_strategy_generic(erp_action, 0);
1943 &erp_action->adapter->status);
1957 zfcp_erp_adapter_strategy_generic(struct zfcp_erp_action *erp_action, int close)
1964 retval = zfcp_erp_adapter_strategy_open_qdio(erp_action);
1968 retval = zfcp_erp_adapter_strategy_open_fsf(erp_action);
1972 atomic_set_mask(ZFCP_STATUS_COMMON_OPEN, &erp_action->adapter->status);
1977 &erp_action->adapter->status);
1980 zfcp_close_fsf(erp_action->adapter);
1995 zfcp_erp_adapter_strategy_open_qdio(struct zfcp_erp_action *erp_action)
2000 struct zfcp_adapter *adapter = erp_action->adapter;
2087 zfcp_erp_adapter_strategy_open_fsf(struct zfcp_erp_action *erp_action)
2091 retval = zfcp_erp_adapter_strategy_open_fsf_xconfig(erp_action);
2095 retval = zfcp_erp_adapter_strategy_open_fsf_xport(erp_action);
2099 return zfcp_erp_adapter_strategy_open_fsf_statusread(erp_action);
2103 zfcp_erp_adapter_strategy_open_fsf_xconfig(struct zfcp_erp_action *erp_action)
2108 struct zfcp_adapter *adapter = erp_action->adapter;
2117 zfcp_erp_action_to_running(erp_action);
2119 if (zfcp_fsf_exchange_config_data(erp_action)) {
2145 if (erp_action->status & ZFCP_STATUS_ERP_TIMEDOUT) {
2175 zfcp_erp_adapter_strategy_open_fsf_xport(struct zfcp_erp_action *erp_action)
2180 adapter = erp_action->adapter;
2184 zfcp_erp_action_to_running(erp_action);
2187 ret = zfcp_fsf_exchange_port_data(erp_action, adapter, NULL);
2199 if (erp_action->status & ZFCP_STATUS_ERP_TIMEDOUT) {
2215 *erp_action)
2219 struct zfcp_adapter *adapter = erp_action->adapter;
2248 zfcp_erp_port_forced_strategy(struct zfcp_erp_action *erp_action)
2251 struct zfcp_port *port = erp_action->port;
2252 struct zfcp_adapter *adapter = erp_action->adapter;
2254 switch (erp_action->step) {
2269 zfcp_erp_port_forced_strategy_close(erp_action);
2287 debug_event(adapter->erp_dbf, 3, &erp_action->action, sizeof (int));
2303 zfcp_erp_port_strategy(struct zfcp_erp_action *erp_action)
2306 struct zfcp_port *port = erp_action->port;
2307 struct zfcp_adapter *adapter = erp_action->adapter;
2309 switch (erp_action->step) {
2316 retval = zfcp_erp_port_strategy_close(erp_action);
2330 if (erp_action->status & ZFCP_STATUS_ERP_CLOSE_ONLY)
2333 retval = zfcp_erp_port_strategy_open(erp_action);
2338 debug_event(adapter->erp_dbf, 3, &erp_action->action, sizeof (int));
2345 zfcp_erp_port_strategy_open(struct zfcp_erp_action *erp_action)
2350 &erp_action->port->status))
2351 retval = zfcp_erp_port_strategy_open_nameserver(erp_action);
2353 retval = zfcp_erp_port_strategy_open_common(erp_action);
2359 zfcp_erp_port_strategy_open_common(struct zfcp_erp_action *erp_action)
2362 struct zfcp_adapter *adapter = erp_action->adapter;
2363 struct zfcp_port *port = erp_action->port;
2365 switch (erp_action->step) {
2384 retval = zfcp_erp_port_strategy_open_port(erp_action);
2406 erp_action->step =
2424 (erp_action);
2446 retval = zfcp_erp_port_strategy_open_port(erp_action);
2466 erp_action->step);
2474 zfcp_erp_port_strategy_open_nameserver(struct zfcp_erp_action *erp_action)
2477 struct zfcp_port *port = erp_action->port;
2479 switch (erp_action->step) {
2486 retval = zfcp_erp_port_strategy_open_port(erp_action);
2499 zfcp_erp_port_strategy_open_nameserver_wakeup(erp_action);
2504 erp_action->step);
2527 struct zfcp_erp_action *erp_action, *tmp;
2530 list_for_each_entry_safe(erp_action, tmp, &adapter->erp_running_head,
2533 debug_event(adapter->erp_dbf, 4, &erp_action->port->wwpn,
2535 if (erp_action->step == ZFCP_ERP_STEP_NAMESERVER_OPEN) {
2538 &erp_action->port->wwpn, sizeof (wwn_t));
2542 zfcp_erp_port_failed(erp_action->port);
2543 zfcp_erp_action_ready(erp_action);
2560 zfcp_erp_port_forced_strategy_close(struct zfcp_erp_action *erp_action)
2563 struct zfcp_adapter *adapter = erp_action->adapter;
2564 struct zfcp_port *port = erp_action->port;
2566 retval = zfcp_fsf_close_physical_port(erp_action);
2573 erp_action->step = ZFCP_ERP_STEP_PHYS_PORT_CLOSING;
2616 zfcp_erp_port_strategy_close(struct zfcp_erp_action *erp_action)
2619 struct zfcp_adapter *adapter = erp_action->adapter;
2620 struct zfcp_port *port = erp_action->port;
2622 retval = zfcp_fsf_close_port(erp_action);
2629 erp_action->step = ZFCP_ERP_STEP_PORT_CLOSING;
2653 zfcp_erp_port_strategy_open_port(struct zfcp_erp_action *erp_action)
2656 struct zfcp_adapter *adapter = erp_action->adapter;
2657 struct zfcp_port *port = erp_action->port;
2659 retval = zfcp_fsf_open_port(erp_action);
2666 erp_action->step = ZFCP_ERP_STEP_PORT_OPENING;
2690 zfcp_erp_port_strategy_open_common_lookup(struct zfcp_erp_action *erp_action)
2693 struct zfcp_adapter *adapter = erp_action->adapter;
2694 struct zfcp_port *port = erp_action->port;
2696 retval = zfcp_ns_gid_pn_request(erp_action);
2703 erp_action->step = ZFCP_ERP_STEP_NAMESERVER_LOOKUP;
2729 zfcp_erp_unit_strategy(struct zfcp_erp_action *erp_action)
2732 struct zfcp_unit *unit = erp_action->unit;
2733 struct zfcp_adapter *adapter = erp_action->adapter;
2735 switch (erp_action->step) {
2742 retval = zfcp_erp_unit_strategy_close(erp_action);
2752 if (erp_action->status & ZFCP_STATUS_ERP_CLOSE_ONLY)
2758 zfcp_erp_unit_strategy_open(erp_action);
2778 debug_event(adapter->erp_dbf, 3, &erp_action->action, sizeof (int));
2811 zfcp_erp_unit_strategy_close(struct zfcp_erp_action *erp_action)
2814 struct zfcp_adapter *adapter = erp_action->adapter;
2815 struct zfcp_unit *unit = erp_action->unit;
2817 retval = zfcp_fsf_close_unit(erp_action);
2825 erp_action->step = ZFCP_ERP_STEP_UNIT_CLOSING;
2851 zfcp_erp_unit_strategy_open(struct zfcp_erp_action *erp_action)
2854 struct zfcp_adapter *adapter = erp_action->adapter;
2855 struct zfcp_unit *unit = erp_action->unit;
2857 retval = zfcp_fsf_open_unit(erp_action);
2865 erp_action->step = ZFCP_ERP_STEP_UNIT_OPENING;
2883 BUG_ON(!fsf_req->erp_action);
2885 fsf_req->timer.data = (unsigned long) fsf_req->erp_action;
2903 struct zfcp_erp_action *erp_action = NULL;
2962 if (port->erp_action.action !=
2967 port->erp_action.action);
3028 erp_action = &unit->erp_action;
3039 erp_action = &port->erp_action;
3049 erp_action = &adapter->erp_action;
3058 memset(erp_action, 0, sizeof (struct zfcp_erp_action));
3059 erp_action->adapter = adapter;
3060 erp_action->port = port;
3061 erp_action->unit = unit;
3062 erp_action->action = action;
3063 erp_action->status = status;
3068 list_add(&erp_action->list, &adapter->erp_ready_head);
3076 zfcp_erp_action_dequeue(struct zfcp_erp_action *erp_action)
3079 struct zfcp_adapter *adapter = erp_action->adapter;
3082 if (erp_action->status & ZFCP_STATUS_ERP_LOWMEM) {
3084 erp_action->status &= ~ZFCP_STATUS_ERP_LOWMEM;
3088 debug_event(adapter->erp_dbf, 4, &erp_action->action, sizeof (int));
3089 list_del(&erp_action->list);
3090 switch (erp_action->action) {
3093 &erp_action->unit->status);
3098 &erp_action->port->status);
3102 &erp_action->adapter->status);
3196 zfcp_erp_action_dismiss(&adapter->erp_action);
3210 zfcp_erp_action_dismiss(&port->erp_action);
3223 zfcp_erp_action_dismiss(&unit->erp_action);
3227 zfcp_erp_action_to_running(struct zfcp_erp_action *erp_action)
3229 struct zfcp_adapter *adapter = erp_action->adapter;
3232 debug_event(adapter->erp_dbf, 6, &erp_action->action, sizeof (int));
3233 list_move(&erp_action->list, &erp_action->adapter->erp_running_head);
3237 zfcp_erp_action_to_ready(struct zfcp_erp_action *erp_action)
3239 struct zfcp_adapter *adapter = erp_action->adapter;
3242 debug_event(adapter->erp_dbf, 6, &erp_action->action, sizeof (int));
3243 list_move(&erp_action->list, &erp_action->adapter->erp_ready_head);