Lines Matching refs:rtnl_nets
278 struct rtnl_nets { struct
286 static void rtnl_nets_init(struct rtnl_nets *rtnl_nets) in rtnl_nets_init() argument
288 memset(rtnl_nets, 0, sizeof(*rtnl_nets)); in rtnl_nets_init()
291 static void rtnl_nets_destroy(struct rtnl_nets *rtnl_nets) in rtnl_nets_destroy() argument
295 for (i = 0; i < rtnl_nets->len; i++) { in rtnl_nets_destroy()
296 put_net(rtnl_nets->net[i]); in rtnl_nets_destroy()
297 rtnl_nets->net[i] = NULL; in rtnl_nets_destroy()
300 rtnl_nets->len = 0; in rtnl_nets_destroy()
311 static void rtnl_nets_add(struct rtnl_nets *rtnl_nets, struct net *net) in rtnl_nets_add() argument
315 DEBUG_NET_WARN_ON_ONCE(rtnl_nets->len == ARRAY_SIZE(rtnl_nets->net)); in rtnl_nets_add()
317 for (i = 0; i < rtnl_nets->len; i++) { in rtnl_nets_add()
318 switch (rtnl_net_cmp_locks(rtnl_nets->net[i], net)) { in rtnl_nets_add()
323 swap(rtnl_nets->net[i], net); in rtnl_nets_add()
327 rtnl_nets->net[i] = net; in rtnl_nets_add()
328 rtnl_nets->len++; in rtnl_nets_add()
331 static void rtnl_nets_lock(struct rtnl_nets *rtnl_nets) in rtnl_nets_lock() argument
337 for (i = 0; i < rtnl_nets->len; i++) in rtnl_nets_lock()
338 __rtnl_net_lock(rtnl_nets->net[i]); in rtnl_nets_lock()
341 static void rtnl_nets_unlock(struct rtnl_nets *rtnl_nets) in rtnl_nets_unlock() argument
345 for (i = 0; i < rtnl_nets->len; i++) in rtnl_nets_unlock()
346 __rtnl_net_unlock(rtnl_nets->net[i]); in rtnl_nets_unlock()
3397 struct rtnl_nets rtnl_nets; in rtnl_setlink() local
3416 rtnl_nets_init(&rtnl_nets); in rtnl_setlink()
3417 rtnl_nets_add(&rtnl_nets, get_net(net)); in rtnl_setlink()
3418 rtnl_nets_add(&rtnl_nets, tgt_net); in rtnl_setlink()
3420 rtnl_nets_lock(&rtnl_nets); in rtnl_setlink()
3434 rtnl_nets_unlock(&rtnl_nets); in rtnl_setlink()
3435 rtnl_nets_destroy(&rtnl_nets); in rtnl_setlink()
3918 struct rtnl_nets rtnl_nets; in rtnl_newlink() local
3960 rtnl_nets_init(&rtnl_nets); in rtnl_newlink()
3991 rtnl_nets_add(&rtnl_nets, peer_net); in rtnl_newlink()
4001 rtnl_nets_add(&rtnl_nets, tgt_net); in rtnl_newlink()
4013 rtnl_nets_add(&rtnl_nets, link_net); in rtnl_newlink()
4021 rtnl_nets_lock(&rtnl_nets); in rtnl_newlink()
4023 rtnl_nets_unlock(&rtnl_nets); in rtnl_newlink()
4026 rtnl_nets_destroy(&rtnl_nets); in rtnl_newlink()