Lines Matching refs:peer

189 static int alloc_netid(struct net *net, struct net *peer, int reqid)  in alloc_netid()  argument
198 return idr_alloc(&net->netns_ids, peer, min, max, GFP_ATOMIC); in alloc_netid()
207 static int net_eq_idr(int id, void *net, void *peer) in net_eq_idr() argument
209 if (net_eq(net, peer)) in net_eq_idr()
218 static int __peernet2id_alloc(struct net *net, struct net *peer, bool *alloc) in __peernet2id_alloc() argument
220 int id = idr_for_each(&net->netns_ids, net_eq_idr, peer); in __peernet2id_alloc()
232 id = alloc_netid(net, peer, -1); in __peernet2id_alloc()
241 static int __peernet2id(struct net *net, struct net *peer) in __peernet2id() argument
245 return __peernet2id_alloc(net, peer, &no); in __peernet2id()
253 int peernet2id_alloc(struct net *net, struct net *peer, gfp_t gfp) in peernet2id_alloc() argument
267 if (maybe_get_net(peer)) in peernet2id_alloc()
269 id = __peernet2id_alloc(net, peer, &alloc); in peernet2id_alloc()
274 put_net(peer); in peernet2id_alloc()
280 int peernet2id(struct net *net, struct net *peer) in peernet2id() argument
285 id = __peernet2id(net, peer); in peernet2id()
294 bool peernet_has_id(struct net *net, struct net *peer) in peernet_has_id() argument
296 return peernet2id(net, peer) >= 0; in peernet_has_id()
301 struct net *peer; in get_net_ns_by_id() local
307 peer = idr_find(&net->netns_ids, id); in get_net_ns_by_id()
308 if (peer) in get_net_ns_by_id()
309 peer = maybe_get_net(peer); in get_net_ns_by_id()
312 return peer; in get_net_ns_by_id()
728 struct net *peer; in rtnl_net_newid() local
742 peer = get_net_ns_by_pid(nla_get_u32(tb[NETNSA_PID])); in rtnl_net_newid()
745 peer = get_net_ns_by_fd(nla_get_u32(tb[NETNSA_FD])); in rtnl_net_newid()
751 if (IS_ERR(peer)) { in rtnl_net_newid()
754 return PTR_ERR(peer); in rtnl_net_newid()
758 if (__peernet2id(net, peer) >= 0) { in rtnl_net_newid()
767 err = alloc_netid(net, peer, nsid); in rtnl_net_newid()
779 put_net(peer); in rtnl_net_newid()
876 struct net *peer, *target = net; in rtnl_net_getid() local
885 peer = get_net_ns_by_pid(nla_get_u32(tb[NETNSA_PID])); in rtnl_net_getid()
888 peer = get_net_ns_by_fd(nla_get_u32(tb[NETNSA_FD])); in rtnl_net_getid()
891 peer = get_net_ns_by_id(net, nla_get_s32(tb[NETNSA_NSID])); in rtnl_net_getid()
892 if (!peer) in rtnl_net_getid()
893 peer = ERR_PTR(-ENOENT); in rtnl_net_getid()
900 if (IS_ERR(peer)) { in rtnl_net_getid()
903 return PTR_ERR(peer); in rtnl_net_getid()
918 fillargs.ref_nsid = peernet2id(net, peer); in rtnl_net_getid()
927 fillargs.nsid = peernet2id(target, peer); in rtnl_net_getid()
940 put_net(peer); in rtnl_net_getid()
953 static int rtnl_net_dumpid_one(int id, void *peer, void *data) in rtnl_net_dumpid_one() argument
963 net_cb->fillargs.ref_nsid = __peernet2id(net_cb->ref_net, peer); in rtnl_net_dumpid_one()