示例#1
0
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;
}
示例#2
0
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;
}