Consolidate the ip cork destruction in ip6_output.c
Subsystems (3)
PATCH 2/2 Consolidate the ip cork destruction in ip6_output.c
The ip6_push_pending_frames and ip6_flush_pending_frames do the same things to flush the sock's cork. Move this into a separate function and save ~100 bytes from the .text
Signed-off-by Pavel Emelyanov <[email protected]>
---
net/ipv6/ip6_output.c +15 -21
@@ -1339,6 +1339,19 @@ error:return err; } +static void ip6_cork_release (struct inet_sock *inet,struct ipv6_pinfo *np) +{ + inet->cork.flags &= ~IPCORK_OPT ; +kfree (np->cork.opt); + np->cork.opt =NULL ; +if (np->cork.rt) { +dst_release (&np->cork.rt->u.dst); + np->cork.rt =NULL ; + inet->cork.flags &= ~IPCORK_ALLFRAG ; + } +memset (&inet->cork.fl,0 ,sizeof (inet->cork.fl)); +} +int ip6_push_pending_frames (struct sock *sk) {struct sk_buff *skb, *tmp_skb;
@@ -1415,15 +1428,7 @@ int ip6_push_pending_frames(struct sock *sk) } out: - inet->cork.flags &= ~IPCORK_OPT ; -kfree (np->cork.opt); - np->cork.opt =NULL ; -if (np->cork.rt) { -dst_release (&np->cork.rt->u.dst); - np->cork.rt =NULL ; - inet->cork.flags &= ~IPCORK_ALLFRAG ; - } -memset (&inet->cork.fl,0 ,sizeof (inet->cork.fl)); +ip6_cork_release (inet, np);return err; error: goto out;
@@ -1431,8 +1436,6 @@ error:void ip6_flush_pending_frames (struct sock *sk) { -struct inet_sock *inet =inet_sk (sk); -struct ipv6_pinfo *np =inet6_sk (sk);struct sk_buff *skb;while ((skb =__skb_dequeue_tail (&sk->sk_write_queue)) !=NULL ) {
@@ -1442,14 +1445,5 @@ void ip6_flush_pending_frames(struct sock *sk)kfree_skb (skb); } - inet->cork.flags &= ~IPCORK_OPT ; - -kfree (np->cork.opt); - np->cork.opt =NULL ; -if (np->cork.rt) { -dst_release (&np->cork.rt->u.dst); - np->cork.rt =NULL ; - inet->cork.flags &= ~IPCORK_ALLFRAG ; - } -memset (&inet->cork.fl,0 ,sizeof (inet->cork.fl)); +ip6_cork_release (inet_sk (sk),inet6_sk (sk)); }
Signature · 1 line
1.5.3.4
From: Pavel Emelyanov <[email protected]>
Date: Fri, 02 Nov 2007 19:05:38 +0300
Quoted 5 lines
The
ip6_push_pending_framesandip6_flush_pending_framesdo the same things to flush the sock's cork. Move this into a separate function and save ~100 bytes from the .textSigned-off-by Pavel Emelyanov <[email protected]>
Applied.