From 8e7999c44ee95e1e90ac91c83557a04e2948f160 Mon Sep 17 00:00:00 2001 From: Pavel Emelyanov Date: Mon, 15 Oct 2007 02:40:06 -0700 Subject: [INET]: Consolidate the xxx_evictor The evictors collect some statistics for ipv4 and ipv6, so make it return the number of evicted queues and account them all at once in the caller. The XXX_ADD_STATS_BH() macros are just for this case, but maybe there are places in code, that can make use of them as well. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller --- net/ipv6/netfilter/nf_conntrack_reasm.c | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) (limited to 'net/ipv6/netfilter/nf_conntrack_reasm.c') diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c index 785f5cda188..e4fbe5ba88f 100644 --- a/net/ipv6/netfilter/nf_conntrack_reasm.c +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c @@ -163,34 +163,7 @@ static __inline__ void fq_kill(struct nf_ct_frag6_queue *fq) static void nf_ct_frag6_evictor(void) { - struct nf_ct_frag6_queue *fq; - struct list_head *tmp; - unsigned int work; - - work = atomic_read(&nf_frags.mem); - if (work <= nf_frags_ctl.low_thresh) - return; - - work -= nf_frags_ctl.low_thresh; - while (work > 0) { - read_lock(&nf_frags.lock); - if (list_empty(&nf_frags.lru_list)) { - read_unlock(&nf_frags.lock); - return; - } - tmp = nf_frags.lru_list.next; - BUG_ON(tmp == NULL); - fq = list_entry(tmp, struct nf_ct_frag6_queue, q.lru_list); - atomic_inc(&fq->q.refcnt); - read_unlock(&nf_frags.lock); - - spin_lock(&fq->q.lock); - if (!(fq->q.last_in&COMPLETE)) - fq_kill(fq); - spin_unlock(&fq->q.lock); - - fq_put(fq, &work); - } + inet_frag_evictor(&nf_frags); } static void nf_ct_frag6_expire(unsigned long data) -- cgit v1.2.3