diff options
author | Shan Wei <shanwei@cn.fujitsu.com> | 2010-02-10 19:12:45 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-16 00:49:49 -0500 |
commit | 9546377c42e12513b33925ab829d893dcf521c5f (patch) | |
tree | c025fb134016a1af53b601eacf51b37b89932048 /net/ipv6/reassembly.c | |
parent | 564517e804c9c6d4e29c270bfc1517404d27107b (diff) |
IPv6: Delete redundant counter of IPSTATS_MIB_REASMFAILS
When no more memory can be allocated, fq_find() will return NULL and
increase the value of IPSTATS_MIB_REASMFAILS. In this case,
ipv6_frag_rcv() also increase the value of IPSTATS_MIB_REASMFAILS.
So, the patch deletes redundant counter of IPSTATS_MIB_REASMFAILS in fq_find().
and deletes the unused parameter of idev.
Signed-off-by: Shan Wei <shanwei@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/reassembly.c')
-rw-r--r-- | net/ipv6/reassembly.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c index fa38fc7cc6e9..fe27eb4264d6 100644 --- a/net/ipv6/reassembly.c +++ b/net/ipv6/reassembly.c | |||
@@ -237,8 +237,7 @@ out: | |||
237 | } | 237 | } |
238 | 238 | ||
239 | static __inline__ struct frag_queue * | 239 | static __inline__ struct frag_queue * |
240 | fq_find(struct net *net, __be32 id, struct in6_addr *src, struct in6_addr *dst, | 240 | fq_find(struct net *net, __be32 id, struct in6_addr *src, struct in6_addr *dst) |
241 | struct inet6_dev *idev) | ||
242 | { | 241 | { |
243 | struct inet_frag_queue *q; | 242 | struct inet_frag_queue *q; |
244 | struct ip6_create_arg arg; | 243 | struct ip6_create_arg arg; |
@@ -254,13 +253,9 @@ fq_find(struct net *net, __be32 id, struct in6_addr *src, struct in6_addr *dst, | |||
254 | 253 | ||
255 | q = inet_frag_find(&net->ipv6.frags, &ip6_frags, &arg, hash); | 254 | q = inet_frag_find(&net->ipv6.frags, &ip6_frags, &arg, hash); |
256 | if (q == NULL) | 255 | if (q == NULL) |
257 | goto oom; | 256 | return NULL; |
258 | 257 | ||
259 | return container_of(q, struct frag_queue, q); | 258 | return container_of(q, struct frag_queue, q); |
260 | |||
261 | oom: | ||
262 | IP6_INC_STATS_BH(net, idev, IPSTATS_MIB_REASMFAILS); | ||
263 | return NULL; | ||
264 | } | 259 | } |
265 | 260 | ||
266 | static int ip6_frag_queue(struct frag_queue *fq, struct sk_buff *skb, | 261 | static int ip6_frag_queue(struct frag_queue *fq, struct sk_buff *skb, |
@@ -606,8 +601,8 @@ static int ipv6_frag_rcv(struct sk_buff *skb) | |||
606 | if (atomic_read(&net->ipv6.frags.mem) > net->ipv6.frags.high_thresh) | 601 | if (atomic_read(&net->ipv6.frags.mem) > net->ipv6.frags.high_thresh) |
607 | ip6_evictor(net, ip6_dst_idev(skb_dst(skb))); | 602 | ip6_evictor(net, ip6_dst_idev(skb_dst(skb))); |
608 | 603 | ||
609 | if ((fq = fq_find(net, fhdr->identification, &hdr->saddr, &hdr->daddr, | 604 | fq = fq_find(net, fhdr->identification, &hdr->saddr, &hdr->daddr); |
610 | ip6_dst_idev(skb_dst(skb)))) != NULL) { | 605 | if (fq != NULL) { |
611 | int ret; | 606 | int ret; |
612 | 607 | ||
613 | spin_lock(&fq->q.lock); | 608 | spin_lock(&fq->q.lock); |