diff options
Diffstat (limited to 'net/xfrm/xfrm_output.c')
| -rw-r--r-- | net/xfrm/xfrm_output.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c index 9847baec409..0eb3377602e 100644 --- a/net/xfrm/xfrm_output.c +++ b/net/xfrm/xfrm_output.c @@ -67,15 +67,15 @@ int xfrm_output(struct sk_buff *skb)  		if (err)  			goto error; -		err = x->type->output(x, skb); -		if (err) -			goto error; -  		x->curlft.bytes += skb->len;  		x->curlft.packets++;  		spin_unlock_bh(&x->lock); +		err = x->type->output(x, skb); +		if (err) +			goto error_nolock; +  		if (!(skb->dst = dst_pop(dst))) {  			err = -EHOSTUNREACH;  			goto error_nolock;  |