X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fnetfilter%2Fnf_conntrack_ecache.c;h=83c41ac3505b5b1ffb3ffb54969c77378d8b4139;hb=51807e91a76a531d059ec7ce3395c435e4df52a8;hp=5152efd511d04d517913aec18c7d5f3e50573cce;hpb=605dcad6c85226e6d43387917b329d65b95cef39;p=linux-2.6 diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c index 5152efd511..83c41ac350 100644 --- a/net/netfilter/nf_conntrack_ecache.c +++ b/net/netfilter/nf_conntrack_ecache.c @@ -21,16 +21,16 @@ #include #include -#include -#include -#include -#include #include ATOMIC_NOTIFIER_HEAD(nf_conntrack_chain); -ATOMIC_NOTIFIER_HEAD(nf_conntrack_expect_chain); +EXPORT_SYMBOL_GPL(nf_conntrack_chain); + +ATOMIC_NOTIFIER_HEAD(nf_ct_expect_chain); +EXPORT_SYMBOL_GPL(nf_ct_expect_chain); DEFINE_PER_CPU(struct nf_conntrack_ecache, nf_conntrack_ecache); +EXPORT_PER_CPU_SYMBOL_GPL(nf_conntrack_ecache); /* deliver cached events and clear cache entry - must be called with locally * disabled softirqs */ @@ -59,6 +59,7 @@ void nf_ct_deliver_cached_events(const struct nf_conn *ct) __nf_ct_deliver_cached_events(ecache); local_bh_enable(); } +EXPORT_SYMBOL_GPL(nf_ct_deliver_cached_events); /* Deliver cached events for old pending events, if current conntrack != old */ void __nf_ct_event_cache_init(struct nf_conn *ct) @@ -74,6 +75,7 @@ void __nf_ct_event_cache_init(struct nf_conn *ct) ecache->ct = ct; nf_conntrack_get(&ct->ct_general); } +EXPORT_SYMBOL_GPL(__nf_ct_event_cache_init); /* flush the event cache - touches other CPU's data and must not be called * while packets are still passing through the code */ @@ -89,3 +91,26 @@ void nf_ct_event_cache_flush(void) } } +int nf_conntrack_register_notifier(struct notifier_block *nb) +{ + return atomic_notifier_chain_register(&nf_conntrack_chain, nb); +} +EXPORT_SYMBOL_GPL(nf_conntrack_register_notifier); + +int nf_conntrack_unregister_notifier(struct notifier_block *nb) +{ + return atomic_notifier_chain_unregister(&nf_conntrack_chain, nb); +} +EXPORT_SYMBOL_GPL(nf_conntrack_unregister_notifier); + +int nf_ct_expect_register_notifier(struct notifier_block *nb) +{ + return atomic_notifier_chain_register(&nf_ct_expect_chain, nb); +} +EXPORT_SYMBOL_GPL(nf_ct_expect_register_notifier); + +int nf_ct_expect_unregister_notifier(struct notifier_block *nb) +{ + return atomic_notifier_chain_unregister(&nf_ct_expect_chain, nb); +} +EXPORT_SYMBOL_GPL(nf_ct_expect_unregister_notifier);