From 98585fe948a8d7268a80ccf3ed7d62c46524b732 Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Tue, 18 Dec 2007 22:14:25 -0800 Subject: [PATCH] --- yaml --- r: 78559 b: refs/heads/master c: 910ef70aa301eb018255683499b8e51426c213a0 h: refs/heads/master i: 78557: 7c7dfa8676db150064d157113d67beb9711bd14d 78555: 62fa17df26348ba62b175ec80841ea9f9e6bb444 78551: fd5c3ff058958c9e4f568e08bc36aa4d413d1c0e 78543: ee59e286962c8a5b1f526d86c4e749dc93a2c61b 78527: 01a2c58648c3947b9973c8267e8a2106a3022d71 v: v3 --- [refs] | 2 +- trunk/net/xfrm/xfrm_output.c | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index 18236a34057d..bd94aa1f88d8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 33b8e776056202aceaf4c90f465d0f4ee53432ac +refs/heads/master: 910ef70aa301eb018255683499b8e51426c213a0 diff --git a/trunk/net/xfrm/xfrm_output.c b/trunk/net/xfrm/xfrm_output.c index 3c277a4d0e78..26fa0cb78c94 100644 --- a/trunk/net/xfrm/xfrm_output.c +++ b/trunk/net/xfrm/xfrm_output.c @@ -33,16 +33,6 @@ static int xfrm_state_check_space(struct xfrm_state *x, struct sk_buff *skb) return 0; } -static int xfrm_state_check(struct xfrm_state *x, struct sk_buff *skb) -{ - int err = xfrm_state_check_expire(x); - if (err < 0) - goto err; - err = xfrm_state_check_space(x, skb); -err: - return err; -} - static int xfrm_output_one(struct sk_buff *skb, int err) { struct dst_entry *dst = skb->dst; @@ -52,12 +42,16 @@ static int xfrm_output_one(struct sk_buff *skb, int err) goto resume; do { + err = xfrm_state_check_space(x, skb); + if (err) + goto error_nolock; + err = x->outer_mode->output(x, skb); if (err) - goto error; + goto error_nolock; spin_lock_bh(&x->lock); - err = xfrm_state_check(x, skb); + err = xfrm_state_check_expire(x); if (err) goto error;