diff options
author | Masahide NAKAMURA <nakam@linux-ipv6.org> | 2007-12-24 19:00:09 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:00:04 -0500 |
commit | b15c4bcd15741b31019379298edfca28dc78029d (patch) | |
tree | 714ec07cf667fdc3ab2a8655e7f65f2ecb96ba2e /net/xfrm/xfrm_output.c | |
parent | 426b5303eb435d98b9bee37a807be386bc2b3320 (diff) |
[XFRM]: Fix outbound statistics.
Signed-off-by: Masahide NAKAMURA <nakam@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm/xfrm_output.c')
-rw-r--r-- | net/xfrm/xfrm_output.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c index d73003cb2c0e..c1ba63efd7cb 100644 --- a/net/xfrm/xfrm_output.c +++ b/net/xfrm/xfrm_output.c | |||
@@ -43,17 +43,23 @@ static int xfrm_output_one(struct sk_buff *skb, int err) | |||
43 | 43 | ||
44 | do { | 44 | do { |
45 | err = xfrm_state_check_space(x, skb); | 45 | err = xfrm_state_check_space(x, skb); |
46 | if (err) | 46 | if (err) { |
47 | XFRM_INC_STATS(LINUX_MIB_XFRMOUTERROR); | ||
47 | goto error_nolock; | 48 | goto error_nolock; |
49 | } | ||
48 | 50 | ||
49 | err = x->outer_mode->output(x, skb); | 51 | err = x->outer_mode->output(x, skb); |
50 | if (err) | 52 | if (err) { |
53 | XFRM_INC_STATS(LINUX_MIB_XFRMOUTSTATEMODEERROR); | ||
51 | goto error_nolock; | 54 | goto error_nolock; |
55 | } | ||
52 | 56 | ||
53 | spin_lock_bh(&x->lock); | 57 | spin_lock_bh(&x->lock); |
54 | err = xfrm_state_check_expire(x); | 58 | err = xfrm_state_check_expire(x); |
55 | if (err) | 59 | if (err) { |
60 | XFRM_INC_STATS(LINUX_MIB_XFRMOUTSTATEEXPIRED); | ||
56 | goto error; | 61 | goto error; |
62 | } | ||
57 | 63 | ||
58 | if (x->type->flags & XFRM_TYPE_REPLAY_PROT) { | 64 | if (x->type->flags & XFRM_TYPE_REPLAY_PROT) { |
59 | XFRM_SKB_CB(skb)->seq = ++x->replay.oseq; | 65 | XFRM_SKB_CB(skb)->seq = ++x->replay.oseq; |