aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/seq_file.h22
-rw-r--r--include/linux/seq_file_net.h27
-rw-r--r--include/net/net_namespace.h2
3 files changed, 29 insertions, 22 deletions
diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
index 5da70c3f4417..1da1e6208a0a 100644
--- a/include/linux/seq_file.h
+++ b/include/linux/seq_file.h
@@ -5,7 +5,6 @@
5#include <linux/types.h> 5#include <linux/types.h>
6#include <linux/string.h> 6#include <linux/string.h>
7#include <linux/mutex.h> 7#include <linux/mutex.h>
8#include <net/net_namespace.h>
9 8
10struct seq_operations; 9struct seq_operations;
11struct file; 10struct file;
@@ -63,26 +62,5 @@ extern struct list_head *seq_list_start_head(struct list_head *head,
63extern struct list_head *seq_list_next(void *v, struct list_head *head, 62extern struct list_head *seq_list_next(void *v, struct list_head *head,
64 loff_t *ppos); 63 loff_t *ppos);
65 64
66#ifdef CONFIG_NET
67struct net;
68struct seq_net_private {
69#ifdef CONFIG_NET_NS
70 struct net *net;
71#endif
72};
73
74int seq_open_net(struct inode *, struct file *,
75 const struct seq_operations *, int);
76int seq_release_net(struct inode *, struct file *);
77static inline struct net *seq_file_net(struct seq_file *seq)
78{
79#ifdef CONFIG_NET_NS
80 return ((struct seq_net_private *)seq->private)->net;
81#else
82 return &init_net;
83#endif
84}
85#endif /* CONFIG_NET */
86
87#endif 65#endif
88#endif 66#endif
diff --git a/include/linux/seq_file_net.h b/include/linux/seq_file_net.h
new file mode 100644
index 000000000000..4ac52542a563
--- /dev/null
+++ b/include/linux/seq_file_net.h
@@ -0,0 +1,27 @@
1#ifndef __SEQ_FILE_NET_H__
2#define __SEQ_FILE_NET_H__
3
4#include <linux/seq_file.h>
5
6struct net;
7extern struct net init_net;
8
9struct seq_net_private {
10#ifdef CONFIG_NET_NS
11 struct net *net;
12#endif
13};
14
15int seq_open_net(struct inode *, struct file *,
16 const struct seq_operations *, int);
17int seq_release_net(struct inode *, struct file *);
18static inline struct net *seq_file_net(struct seq_file *seq)
19{
20#ifdef CONFIG_NET_NS
21 return ((struct seq_net_private *)seq->private)->net;
22#else
23 return &init_net;
24#endif
25}
26
27#endif
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
index 4a37037b1d17..6c9a48a46685 100644
--- a/include/net/net_namespace.h
+++ b/include/net/net_namespace.h
@@ -61,6 +61,8 @@ struct net {
61 61
62 62
63#ifdef CONFIG_NET 63#ifdef CONFIG_NET
64#include <linux/seq_file_net.h>
65
64/* Init's network namespace */ 66/* Init's network namespace */
65extern struct net init_net; 67extern struct net init_net;
66#define INIT_NET_NS(net_ns) .net_ns = &init_net, 68#define INIT_NET_NS(net_ns) .net_ns = &init_net,