lkml.org 
[lkml]   [2022]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.18 060/231] netfilter: ecache: move to separate structure
    Date
    From: Florian Westphal <fw@strlen.de>

    [ Upstream commit 9027ce0b071a1bbd046682907fc2e23ca3592883 ]

    This makes it easier for a followup patch to only expose ecache
    related parts of nf_conntrack_net structure.

    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    include/net/netfilter/nf_conntrack.h | 8 ++++++--
    net/netfilter/nf_conntrack_ecache.c | 19 ++++++++++---------
    2 files changed, 16 insertions(+), 11 deletions(-)

    diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h
    index b08b70989d2c..69e6c6a218be 100644
    --- a/include/net/netfilter/nf_conntrack.h
    +++ b/include/net/netfilter/nf_conntrack.h
    @@ -43,6 +43,11 @@ union nf_conntrack_expect_proto {
    /* insert expect proto private data here */
    };

    +struct nf_conntrack_net_ecache {
    + struct delayed_work dwork;
    + struct netns_ct *ct_net;
    +};
    +
    struct nf_conntrack_net {
    /* only used when new connection is allocated: */
    atomic_t count;
    @@ -58,8 +63,7 @@ struct nf_conntrack_net {
    struct ctl_table_header *sysctl_header;
    #endif
    #ifdef CONFIG_NF_CONNTRACK_EVENTS
    - struct delayed_work ecache_dwork;
    - struct netns_ct *ct_net;
    + struct nf_conntrack_net_ecache ecache;
    #endif
    };

    diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c
    index 07e65b4e92f8..0cb2da0a759a 100644
    --- a/net/netfilter/nf_conntrack_ecache.c
    +++ b/net/netfilter/nf_conntrack_ecache.c
    @@ -96,8 +96,8 @@ static enum retry_state ecache_work_evict_list(struct ct_pcpu *pcpu)

    static void ecache_work(struct work_struct *work)
    {
    - struct nf_conntrack_net *cnet = container_of(work, struct nf_conntrack_net, ecache_dwork.work);
    - struct netns_ct *ctnet = cnet->ct_net;
    + struct nf_conntrack_net *cnet = container_of(work, struct nf_conntrack_net, ecache.dwork.work);
    + struct netns_ct *ctnet = cnet->ecache.ct_net;
    int cpu, delay = -1;
    struct ct_pcpu *pcpu;

    @@ -127,7 +127,7 @@ static void ecache_work(struct work_struct *work)

    ctnet->ecache_dwork_pending = delay > 0;
    if (delay >= 0)
    - schedule_delayed_work(&cnet->ecache_dwork, delay);
    + schedule_delayed_work(&cnet->ecache.dwork, delay);
    }

    static int __nf_conntrack_eventmask_report(struct nf_conntrack_ecache *e,
    @@ -293,12 +293,12 @@ void nf_conntrack_ecache_work(struct net *net, enum nf_ct_ecache_state state)
    struct nf_conntrack_net *cnet = nf_ct_pernet(net);

    if (state == NFCT_ECACHE_DESTROY_FAIL &&
    - !delayed_work_pending(&cnet->ecache_dwork)) {
    - schedule_delayed_work(&cnet->ecache_dwork, HZ);
    + !delayed_work_pending(&cnet->ecache.dwork)) {
    + schedule_delayed_work(&cnet->ecache.dwork, HZ);
    net->ct.ecache_dwork_pending = true;
    } else if (state == NFCT_ECACHE_DESTROY_SENT) {
    net->ct.ecache_dwork_pending = false;
    - mod_delayed_work(system_wq, &cnet->ecache_dwork, 0);
    + mod_delayed_work(system_wq, &cnet->ecache.dwork, 0);
    }
    }

    @@ -310,8 +310,9 @@ void nf_conntrack_ecache_pernet_init(struct net *net)
    struct nf_conntrack_net *cnet = nf_ct_pernet(net);

    net->ct.sysctl_events = nf_ct_events;
    - cnet->ct_net = &net->ct;
    - INIT_DELAYED_WORK(&cnet->ecache_dwork, ecache_work);
    +
    + cnet->ecache.ct_net = &net->ct;
    + INIT_DELAYED_WORK(&cnet->ecache.dwork, ecache_work);

    BUILD_BUG_ON(__IPCT_MAX >= 16); /* e->ctmask is u16 */
    }
    @@ -320,5 +321,5 @@ void nf_conntrack_ecache_pernet_fini(struct net *net)
    {
    struct nf_conntrack_net *cnet = nf_ct_pernet(net);

    - cancel_delayed_work_sync(&cnet->ecache_dwork);
    + cancel_delayed_work_sync(&cnet->ecache.dwork);
    }
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-07-19 14:56    [W:3.201 / U:0.228 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site