Commit 478374a3 authored by Florian Westphal's avatar Florian Westphal Committed by Pablo Neira Ayuso

netfilter: ecache: remove one indent level

nf_conntrack_eventmask_report and nf_ct_deliver_cached_events shared
most of their code.  This unifies the layout by changing

 if (nf_ct_is_confirmed(ct)) {
   foo
 }

 to
 if (!nf_ct_is_confirmed(ct)))
   return
 foo

This removes one level of indentation.
Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent 87e5ef4b
...@@ -73,7 +73,7 @@ struct nf_ct_event { ...@@ -73,7 +73,7 @@ struct nf_ct_event {
}; };
struct nf_ct_event_notifier { struct nf_ct_event_notifier {
int (*fcn)(unsigned int events, struct nf_ct_event *item); int (*fcn)(unsigned int events, const struct nf_ct_event *item);
}; };
int nf_conntrack_register_notifier(struct net *net, int nf_conntrack_register_notifier(struct net *net,
......
...@@ -133,10 +133,15 @@ static void ecache_work(struct work_struct *work) ...@@ -133,10 +133,15 @@ static void ecache_work(struct work_struct *work)
int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct,
u32 portid, int report) u32 portid, int report)
{ {
int ret = 0;
struct net *net = nf_ct_net(ct); struct net *net = nf_ct_net(ct);
struct nf_ct_event_notifier *notify; struct nf_ct_event_notifier *notify;
struct nf_conntrack_ecache *e; struct nf_conntrack_ecache *e;
struct nf_ct_event item;
unsigned long missed;
int ret = 0;
if (!nf_ct_is_confirmed(ct))
return ret;
rcu_read_lock(); rcu_read_lock();
notify = rcu_dereference(net->ct.nf_conntrack_event_cb); notify = rcu_dereference(net->ct.nf_conntrack_event_cb);
...@@ -147,38 +152,37 @@ int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, ...@@ -147,38 +152,37 @@ int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct,
if (!e) if (!e)
goto out_unlock; goto out_unlock;
if (nf_ct_is_confirmed(ct)) { memset(&item, 0, sizeof(item));
struct nf_ct_event item = {
.ct = ct, item.ct = ct;
.portid = e->portid ? e->portid : portid, item.portid = e->portid ? e->portid : portid;
.report = report item.report = report;
};
/* This is a resent of a destroy event? If so, skip missed */ /* This is a resent of a destroy event? If so, skip missed */
unsigned long missed = e->portid ? 0 : e->missed; missed = e->portid ? 0 : e->missed;
if (!((eventmask | missed) & e->ctmask)) if (!((eventmask | missed) & e->ctmask))
goto out_unlock; goto out_unlock;
ret = notify->fcn(eventmask | missed, &item); ret = notify->fcn(eventmask | missed, &item);
if (unlikely(ret < 0 || missed)) { if (unlikely(ret < 0 || missed)) {
spin_lock_bh(&ct->lock); spin_lock_bh(&ct->lock);
if (ret < 0) { if (ret < 0) {
/* This is a destroy event that has been /* This is a destroy event that has been
* triggered by a process, we store the PORTID * triggered by a process, we store the PORTID
* to include it in the retransmission. * to include it in the retransmission.
*/ */
if (eventmask & (1 << IPCT_DESTROY)) { if (eventmask & (1 << IPCT_DESTROY)) {
if (e->portid == 0 && portid != 0) if (e->portid == 0 && portid != 0)
e->portid = portid; e->portid = portid;
e->state = NFCT_ECACHE_DESTROY_FAIL; e->state = NFCT_ECACHE_DESTROY_FAIL;
} else {
e->missed |= eventmask;
}
} else { } else {
e->missed &= ~missed; e->missed |= eventmask;
} }
spin_unlock_bh(&ct->lock); } else {
e->missed &= ~missed;
} }
spin_unlock_bh(&ct->lock);
} }
out_unlock: out_unlock:
rcu_read_unlock(); rcu_read_unlock();
......
...@@ -706,7 +706,7 @@ static size_t ctnetlink_nlmsg_size(const struct nf_conn *ct) ...@@ -706,7 +706,7 @@ static size_t ctnetlink_nlmsg_size(const struct nf_conn *ct)
} }
static int static int
ctnetlink_conntrack_event(unsigned int events, struct nf_ct_event *item) ctnetlink_conntrack_event(unsigned int events, const struct nf_ct_event *item)
{ {
const struct nf_conntrack_zone *zone; const struct nf_conntrack_zone *zone;
struct net *net; struct net *net;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment