Пример #1
0
static int sock_dom_close(struct fid *fid)
{
	struct sock_domain *dom;
	dom = container_of(fid, struct sock_domain, dom_fid.fid);
	if (atomic_get(&dom->ref))
		return -FI_EBUSY;

	sock_pe_finalize(dom->pe);
	fastlock_destroy(&dom->lock);
	rbtDelete(dom->mr_heap);
	sock_dom_remove_from_list(dom);
	free(dom);
	return 0;
}
Пример #2
0
static int sock_dom_close(struct fid *fid)
{
	struct sock_domain *dom;
	dom = container_of(fid, struct sock_domain, dom_fid.fid);
	if (atomic_get(&dom->ref)) {
		return -FI_EBUSY;
	}

	sock_pe_finalize(dom->pe);
	if (dom->r_cmap.size)
		sock_conn_map_destroy(&dom->r_cmap);
	fastlock_destroy(&dom->r_cmap.lock);
	fastlock_destroy(&dom->lock);
	sock_dom_remove_from_list(dom);
	free(dom);
	return 0;
}