static int zfcp_erp_adapter_strategy_open_qdio(struct zfcp_erp_action *act) { if (zfcp_qdio_open(act->adapter)) return ZFCP_ERP_FAILED; init_waitqueue_head(&act->adapter->request_wq); atomic_set_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &act->adapter->status); return ZFCP_ERP_SUCCEEDED; }
static int zfcp_erp_adapter_strategy_open(struct zfcp_erp_action *act) { struct zfcp_adapter *adapter = act->adapter; if (zfcp_qdio_open(adapter->qdio)) { atomic_clear_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK | ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED, &adapter->status); return ZFCP_ERP_FAILED; } if (zfcp_erp_adapter_strategy_open_fsf(act)) { zfcp_erp_adapter_strategy_close(act); return ZFCP_ERP_FAILED; } atomic_set_mask(ZFCP_STATUS_COMMON_OPEN, &adapter->status); return ZFCP_ERP_SUCCEEDED; }