Lines Matching full:net

3  *  linux/fs/proc/net.c
9 * proc net directory handling functions
24 #include <net/net_namespace.h>
29 static inline struct net *PDE_NET(struct proc_dir_entry *pde) in PDE_NET()
34 static struct net *get_proc_net(const struct inode *inode) in get_proc_net()
43 struct net *net; in seq_open_net() local
50 net = get_proc_net(inode); in seq_open_net()
51 if (!net) in seq_open_net()
56 put_net(net); in seq_open_net()
60 p->net = net; in seq_open_net()
61 netns_tracker_alloc(net, &p->ns_tracker, GFP_KERNEL); in seq_open_net()
71 put_net_track(priv->net, &priv->ns_tracker); in seq_file_net_put_net()
99 p->net = get_net_track(current->nsproxy->net_ns, &p->ns_tracker, in bpf_iter_init_seq_net()
110 put_net_track(p->net, &p->ns_tracker); in bpf_iter_fini_seq_net()
179 struct net *net; in single_open_net() local
182 net = get_proc_net(inode); in single_open_net()
183 if (!net) in single_open_net()
186 err = single_open(file, de->single_show, net); in single_open_net()
188 put_net(net); in single_open_net()
267 static struct net *get_proc_task_net(struct inode *dir) in get_proc_task_net()
271 struct net *net = NULL; in get_proc_task_net() local
279 net = get_net(ns->net_ns); in get_proc_task_net()
284 return net; in get_proc_task_net()
291 struct net *net; in proc_tgid_net_lookup() local
294 net = get_proc_task_net(dir); in proc_tgid_net_lookup()
295 if (net != NULL) { in proc_tgid_net_lookup()
296 de = proc_lookup_de(dir, dentry, net->proc_net); in proc_tgid_net_lookup()
297 put_net(net); in proc_tgid_net_lookup()
307 struct net *net; in proc_tgid_net_getattr() local
309 net = get_proc_task_net(inode); in proc_tgid_net_getattr()
313 if (net != NULL) { in proc_tgid_net_getattr()
314 stat->nlink = net->proc_net->nlink; in proc_tgid_net_getattr()
315 put_net(net); in proc_tgid_net_getattr()
330 struct net *net; in proc_tgid_net_readdir() local
333 net = get_proc_task_net(file_inode(file)); in proc_tgid_net_readdir()
334 if (net != NULL) { in proc_tgid_net_readdir()
335 ret = proc_readdir_de(file, ctx, net->proc_net); in proc_tgid_net_readdir()
336 put_net(net); in proc_tgid_net_readdir()
347 static __net_init int proc_net_ns_init(struct net *net) in proc_net_ns_init() argument
355 * This PDE acts only as an anchor for /proc/${pid}/net hierarchy. in proc_net_ns_init()
356 * Corresponding inode (PDE(inode) == net->proc_net) is never in proc_net_ns_init()
358 * net->proc_net_stat inode is instantiated normally. in proc_net_ns_init()
366 netd->data = net; in proc_net_ns_init()
371 memcpy(netd->name, "net", 4); in proc_net_ns_init()
373 uid = make_kuid(net->user_ns, 0); in proc_net_ns_init()
377 gid = make_kgid(net->user_ns, 0); in proc_net_ns_init()
383 /* Seed dentry revalidation for /proc/${pid}/net */ in proc_net_ns_init()
387 net_statd = proc_net_mkdir(net, "stat", netd); in proc_net_ns_init()
391 net->proc_net = netd; in proc_net_ns_init()
392 net->proc_net_stat = net_statd; in proc_net_ns_init()
401 static __net_exit void proc_net_ns_exit(struct net *net) in proc_net_ns_exit() argument
403 remove_proc_entry("stat", net->proc_net); in proc_net_ns_exit()
404 pde_free(net->proc_net); in proc_net_ns_exit()
414 proc_symlink("net", NULL, "self/net"); in proc_net_init()