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 9847baec4094..0eb3377602e9 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; |