Merge tag 'dma-mapping-5.13' of git://git.infradead.org/users/hch/dma-mapping
[linux-2.6-microblaze.git] / net / netfilter / nf_conntrack_expect.c
index 42557d2..efdd391 100644 (file)
@@ -43,18 +43,23 @@ unsigned int nf_ct_expect_max __read_mostly;
 static struct kmem_cache *nf_ct_expect_cachep __read_mostly;
 static unsigned int nf_ct_expect_hashrnd __read_mostly;
 
+extern unsigned int nf_conntrack_net_id;
+
 /* nf_conntrack_expect helper functions */
 void nf_ct_unlink_expect_report(struct nf_conntrack_expect *exp,
                                u32 portid, int report)
 {
        struct nf_conn_help *master_help = nfct_help(exp->master);
        struct net *net = nf_ct_exp_net(exp);
+       struct nf_conntrack_net *cnet;
 
        WARN_ON(!master_help);
        WARN_ON(timer_pending(&exp->timeout));
 
        hlist_del_rcu(&exp->hnode);
-       net->ct.expect_count--;
+
+       cnet = net_generic(net, nf_conntrack_net_id);
+       cnet->expect_count--;
 
        hlist_del_rcu(&exp->lnode);
        master_help->expecting[exp->class]--;
@@ -118,10 +123,11 @@ __nf_ct_expect_find(struct net *net,
                    const struct nf_conntrack_zone *zone,
                    const struct nf_conntrack_tuple *tuple)
 {
+       struct nf_conntrack_net *cnet = net_generic(net, nf_conntrack_net_id);
        struct nf_conntrack_expect *i;
        unsigned int h;
 
-       if (!net->ct.expect_count)
+       if (!cnet->expect_count)
                return NULL;
 
        h = nf_ct_expect_dst_hash(net, tuple);
@@ -158,10 +164,11 @@ nf_ct_find_expectation(struct net *net,
                       const struct nf_conntrack_zone *zone,
                       const struct nf_conntrack_tuple *tuple)
 {
+       struct nf_conntrack_net *cnet = net_generic(net, nf_conntrack_net_id);
        struct nf_conntrack_expect *i, *exp = NULL;
        unsigned int h;
 
-       if (!net->ct.expect_count)
+       if (!cnet->expect_count)
                return NULL;
 
        h = nf_ct_expect_dst_hash(net, tuple);
@@ -368,6 +375,7 @@ EXPORT_SYMBOL_GPL(nf_ct_expect_put);
 
 static void nf_ct_expect_insert(struct nf_conntrack_expect *exp)
 {
+       struct nf_conntrack_net *cnet;
        struct nf_conn_help *master_help = nfct_help(exp->master);
        struct nf_conntrack_helper *helper;
        struct net *net = nf_ct_exp_net(exp);
@@ -389,7 +397,8 @@ static void nf_ct_expect_insert(struct nf_conntrack_expect *exp)
        master_help->expecting[exp->class]++;
 
        hlist_add_head_rcu(&exp->hnode, &nf_ct_expect_hash[h]);
-       net->ct.expect_count++;
+       cnet = net_generic(net, nf_conntrack_net_id);
+       cnet->expect_count++;
 
        NF_CT_STAT_INC(net, expect_create);
 }
@@ -415,6 +424,7 @@ static inline int __nf_ct_expect_check(struct nf_conntrack_expect *expect,
 {
        const struct nf_conntrack_expect_policy *p;
        struct nf_conntrack_expect *i;
+       struct nf_conntrack_net *cnet;
        struct nf_conn *master = expect->master;
        struct nf_conn_help *master_help = nfct_help(master);
        struct nf_conntrack_helper *helper;
@@ -458,7 +468,8 @@ static inline int __nf_ct_expect_check(struct nf_conntrack_expect *expect,
                }
        }
 
-       if (net->ct.expect_count >= nf_ct_expect_max) {
+       cnet = net_generic(net, nf_conntrack_net_id);
+       if (cnet->expect_count >= nf_ct_expect_max) {
                net_warn_ratelimited("nf_conntrack: expectation table full\n");
                ret = -EMFILE;
        }
@@ -686,7 +697,6 @@ module_param_named(expect_hashsize, nf_ct_expect_hsize, uint, 0400);
 
 int nf_conntrack_expect_pernet_init(struct net *net)
 {
-       net->ct.expect_count = 0;
        return exp_proc_init(net);
 }