]> err.no Git - linux-2.6/blobdiff - net/xfrm/xfrm_output.c
Merge git://git.linux-nfs.org/pub/linux/nfs-2.6
[linux-2.6] / net / xfrm / xfrm_output.c
index 9847baec40942ef9acafd811a09deabf8d1de239..0eb3377602e9c3c9b413072f1db6f0b5a915b8e5 100644 (file)
@@ -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;