aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/netfilter/nf_conntrack_ecache.h30
-rw-r--r--net/netfilter/nf_conntrack_ecache.c23
2 files changed, 29 insertions, 24 deletions
diff --git a/include/net/netfilter/nf_conntrack_ecache.h b/include/net/netfilter/nf_conntrack_ecache.h
index b62a8a9ec9d8..811c9073c532 100644
--- a/include/net/netfilter/nf_conntrack_ecache.h
+++ b/include/net/netfilter/nf_conntrack_ecache.h
@@ -20,30 +20,8 @@ DECLARE_PER_CPU(struct nf_conntrack_ecache, nf_conntrack_ecache);
20#define CONNTRACK_ECACHE(x) (__get_cpu_var(nf_conntrack_ecache).x) 20#define CONNTRACK_ECACHE(x) (__get_cpu_var(nf_conntrack_ecache).x)
21 21
22extern struct atomic_notifier_head nf_conntrack_chain; 22extern struct atomic_notifier_head nf_conntrack_chain;
23extern struct atomic_notifier_head nf_conntrack_expect_chain; 23extern int nf_conntrack_register_notifier(struct notifier_block *nb);
24 24extern int nf_conntrack_unregister_notifier(struct notifier_block *nb);
25static inline int nf_conntrack_register_notifier(struct notifier_block *nb)
26{
27 return atomic_notifier_chain_register(&nf_conntrack_chain, nb);
28}
29
30static inline int nf_conntrack_unregister_notifier(struct notifier_block *nb)
31{
32 return atomic_notifier_chain_unregister(&nf_conntrack_chain, nb);
33}
34
35static inline int
36nf_conntrack_expect_register_notifier(struct notifier_block *nb)
37{
38 return atomic_notifier_chain_register(&nf_conntrack_expect_chain, nb);
39}
40
41static inline int
42nf_conntrack_expect_unregister_notifier(struct notifier_block *nb)
43{
44 return atomic_notifier_chain_unregister(&nf_conntrack_expect_chain,
45 nb);
46}
47 25
48extern void nf_ct_deliver_cached_events(const struct nf_conn *ct); 26extern void nf_ct_deliver_cached_events(const struct nf_conn *ct);
49extern void __nf_ct_event_cache_init(struct nf_conn *ct); 27extern void __nf_ct_event_cache_init(struct nf_conn *ct);
@@ -71,6 +49,10 @@ static inline void nf_conntrack_event(enum ip_conntrack_events event,
71 atomic_notifier_call_chain(&nf_conntrack_chain, event, ct); 49 atomic_notifier_call_chain(&nf_conntrack_chain, event, ct);
72} 50}
73 51
52extern struct atomic_notifier_head nf_conntrack_expect_chain;
53extern int nf_conntrack_expect_register_notifier(struct notifier_block *nb);
54extern int nf_conntrack_expect_unregister_notifier(struct notifier_block *nb);
55
74static inline void 56static inline void
75nf_conntrack_expect_event(enum ip_conntrack_expect_events event, 57nf_conntrack_expect_event(enum ip_conntrack_expect_events event,
76 struct nf_conntrack_expect *exp) 58 struct nf_conntrack_expect *exp)
diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c
index 1a223e0c0856..6bd421df2dbc 100644
--- a/net/netfilter/nf_conntrack_ecache.c
+++ b/net/netfilter/nf_conntrack_ecache.c
@@ -91,3 +91,26 @@ void nf_ct_event_cache_flush(void)
91 } 91 }
92} 92}
93 93
94int nf_conntrack_register_notifier(struct notifier_block *nb)
95{
96 return atomic_notifier_chain_register(&nf_conntrack_chain, nb);
97}
98EXPORT_SYMBOL_GPL(nf_conntrack_register_notifier);
99
100int nf_conntrack_unregister_notifier(struct notifier_block *nb)
101{
102 return atomic_notifier_chain_unregister(&nf_conntrack_chain, nb);
103}
104EXPORT_SYMBOL_GPL(nf_conntrack_unregister_notifier);
105
106int nf_conntrack_expect_register_notifier(struct notifier_block *nb)
107{
108 return atomic_notifier_chain_register(&nf_conntrack_expect_chain, nb);
109}
110EXPORT_SYMBOL_GPL(nf_conntrack_expect_register_notifier);
111
112int nf_conntrack_expect_unregister_notifier(struct notifier_block *nb)
113{
114 return atomic_notifier_chain_unregister(&nf_conntrack_expect_chain, nb);
115}
116EXPORT_SYMBOL_GPL(nf_conntrack_expect_unregister_notifier);