Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Sep 2012 07:04:08 +0000 (UTC)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r240737 - head/sys/netpfil/pf
Message-ID:  <201209200704.q8K748Kg063822@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: glebius
Date: Thu Sep 20 07:04:08 2012
New Revision: 240737
URL: http://svn.freebsd.org/changeset/base/240737

Log:
  Reduce copy/paste when freeing an source node.

Modified:
  head/sys/netpfil/pf/pf.c

Modified: head/sys/netpfil/pf/pf.c
==============================================================================
--- head/sys/netpfil/pf/pf.c	Thu Sep 20 06:52:05 2012	(r240736)
+++ head/sys/netpfil/pf/pf.c	Thu Sep 20 07:04:08 2012	(r240737)
@@ -673,6 +673,11 @@ pf_remove_src_node(struct pf_src_node *s
 	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);
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209200704.q8K748Kg063822>