summaryrefslogtreecommitdiffstats
path: root/sys/netpfil
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2012-09-20 07:04:08 +0000
committerglebius <glebius@FreeBSD.org>2012-09-20 07:04:08 +0000
commit6c77a7b69fe0c7316ca744766e83040e5f53d13d (patch)
treee343e50aaee0b4431d5067daecffe1c0f7c75e80 /sys/netpfil
parent90628516533ba3a215431824df6d379724744711 (diff)
downloadFreeBSD-src-6c77a7b69fe0c7316ca744766e83040e5f53d13d.zip
FreeBSD-src-6c77a7b69fe0c7316ca744766e83040e5f53d13d.tar.gz
Reduce copy/paste when freeing an source node.
Diffstat (limited to 'sys/netpfil')
-rw-r--r--sys/netpfil/pf/pf.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
index 3f23c35..b974881 100644
--- a/sys/netpfil/pf/pf.c
+++ b/sys/netpfil/pf/pf.c
@@ -673,6 +673,11 @@ pf_remove_src_node(struct pf_src_node *src)
PF_HASHROW_LOCK(sh);
LIST_REMOVE(src, entry);
PF_HASHROW_UNLOCK(sh);
+
+ V_pf_status.scounters[SCNT_SRC_NODE_REMOVALS]++;
+ V_pf_status.src_nodes--;
+
+ uma_zfree(V_pf_sources_z, src);
}
/* Data storage structures initialization. */
@@ -3547,18 +3552,12 @@ csfailed:
if (nk != NULL)
uma_zfree(V_pf_state_key_z, nk);
- if (sn != NULL && sn->states == 0 && sn->expire == 0) {
+ if (sn != NULL && sn->states == 0 && sn->expire == 0)
pf_remove_src_node(sn);
- V_pf_status.scounters[SCNT_SRC_NODE_REMOVALS]++;
- V_pf_status.src_nodes--;
- uma_zfree(V_pf_sources_z, sn);
- }
- if (nsn != sn && nsn != NULL && nsn->states == 0 && nsn->expire == 0) {
+
+ if (nsn != sn && nsn != NULL && nsn->states == 0 && nsn->expire == 0)
pf_remove_src_node(nsn);
- V_pf_status.scounters[SCNT_SRC_NODE_REMOVALS]++;
- V_pf_status.src_nodes--;
- uma_zfree(V_pf_sources_z, nsn);
- }
+
return (PF_DROP);
}
OpenPOWER on IntegriCloud