netfilter: conntrack: move helper destruction to nf_ct_helper_destroy()
[sfrench/cifs-2.6.git] / net / netfilter / nf_conntrack_helper.c
index 0fa5a422959fc63c13c75abb86747a77fc4c185c..65c2a7bc3afcdccef4ce0eefb35b38f6beda99d7 100644 (file)
@@ -136,6 +136,20 @@ static inline int unhelp(struct nf_conntrack_tuple_hash *i,
        return 0;
 }
 
+void nf_ct_helper_destroy(struct nf_conn *ct)
+{
+       struct nf_conn_help *help = nfct_help(ct);
+       struct nf_conntrack_helper *helper;
+
+       if (help) {
+               rcu_read_lock();
+               helper = rcu_dereference(help->helper);
+               if (helper && helper->destroy)
+                       helper->destroy(ct);
+               rcu_read_unlock();
+       }
+}
+
 int nf_conntrack_helper_register(struct nf_conntrack_helper *me)
 {
        unsigned int h = helper_hash(&me->tuple);