aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/ip_fragment.c
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@openvz.org>2008-07-16 23:19:08 -0400
committerDavid S. Miller <davem@davemloft.net>2008-07-16 23:19:08 -0400
commit84a3aa000eacbaf841d745b07ef3a3280899056b (patch)
tree013d13bb51e1046f6864ae634edaf0dad30da2e7 /net/ipv4/ip_fragment.c
parent78ed11a56bd8679aa6d51eb36b448342c59a7824 (diff)
ipv4: prepare net initialization for IP accounting
Some places, that deal with IP statistics already have where to get a struct net from, but use it directly, without declaring a separate variable on the stack. So, save this net on the stack for future IP_XXX_STATS macros. Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/ip_fragment.c')
-rw-r--r--net/ipv4/ip_fragment.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
index fbd5804b5d83..e23be5b36e1d 100644
--- a/net/ipv4/ip_fragment.c
+++ b/net/ipv4/ip_fragment.c
@@ -187,8 +187,10 @@ static void ip_evictor(struct net *net)
187static void ip_expire(unsigned long arg) 187static void ip_expire(unsigned long arg)
188{ 188{
189 struct ipq *qp; 189 struct ipq *qp;
190 struct net *net;
190 191
191 qp = container_of((struct inet_frag_queue *) arg, struct ipq, q); 192 qp = container_of((struct inet_frag_queue *) arg, struct ipq, q);
193 net = container_of(qp->q.net, struct net, ipv4.frags);
192 194
193 spin_lock(&qp->q.lock); 195 spin_lock(&qp->q.lock);
194 196
@@ -202,9 +204,7 @@ static void ip_expire(unsigned long arg)
202 204
203 if ((qp->q.last_in & INET_FRAG_FIRST_IN) && qp->q.fragments != NULL) { 205 if ((qp->q.last_in & INET_FRAG_FIRST_IN) && qp->q.fragments != NULL) {
204 struct sk_buff *head = qp->q.fragments; 206 struct sk_buff *head = qp->q.fragments;
205 struct net *net;
206 207
207 net = container_of(qp->q.net, struct net, ipv4.frags);
208 /* Send an ICMP "Fragment Reassembly Timeout" message. */ 208 /* Send an ICMP "Fragment Reassembly Timeout" message. */
209 if ((head->dev = dev_get_by_index(net, qp->iif)) != NULL) { 209 if ((head->dev = dev_get_by_index(net, qp->iif)) != NULL) {
210 icmp_send(head, ICMP_TIME_EXCEEDED, ICMP_EXC_FRAGTIME, 0); 210 icmp_send(head, ICMP_TIME_EXCEEDED, ICMP_EXC_FRAGTIME, 0);
@@ -570,9 +570,9 @@ int ip_defrag(struct sk_buff *skb, u32 user)
570 struct ipq *qp; 570 struct ipq *qp;
571 struct net *net; 571 struct net *net;
572 572
573 net = skb->dev ? dev_net(skb->dev) : dev_net(skb->dst->dev);
573 IP_INC_STATS_BH(IPSTATS_MIB_REASMREQDS); 574 IP_INC_STATS_BH(IPSTATS_MIB_REASMREQDS);
574 575
575 net = skb->dev ? dev_net(skb->dev) : dev_net(skb->dst->dev);
576 /* Start by cleaning up the memory. */ 576 /* Start by cleaning up the memory. */
577 if (atomic_read(&net->ipv4.frags.mem) > net->ipv4.frags.high_thresh) 577 if (atomic_read(&net->ipv4.frags.mem) > net->ipv4.frags.high_thresh)
578 ip_evictor(net); 578 ip_evictor(net);