| From e924960dacdf85d118a98c7262edf2f99c3015cf Mon Sep 17 00:00:00 2001 |
| From: Alexey Dobriyan <adobriyan@gmail.com> |
| Date: Mon, 25 Jan 2010 10:28:21 +0000 |
| Subject: netns xfrm: fixup xfrm6_tunnel error propagation |
| |
| From: Alexey Dobriyan <adobriyan@gmail.com> |
| |
| commit e924960dacdf85d118a98c7262edf2f99c3015cf upstream. |
| |
| Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| net/ipv6/xfrm6_tunnel.c | 16 +++++++++++----- |
| 1 file changed, 11 insertions(+), 5 deletions(-) |
| |
| --- a/net/ipv6/xfrm6_tunnel.c |
| +++ b/net/ipv6/xfrm6_tunnel.c |
| @@ -344,13 +344,19 @@ static struct xfrm6_tunnel xfrm46_tunnel |
| |
| static int __init xfrm6_tunnel_init(void) |
| { |
| - if (xfrm_register_type(&xfrm6_tunnel_type, AF_INET6) < 0) |
| + int rv; |
| + |
| + rv = xfrm_register_type(&xfrm6_tunnel_type, AF_INET6); |
| + if (rv < 0) |
| goto err; |
| - if (xfrm6_tunnel_register(&xfrm6_tunnel_handler, AF_INET6)) |
| + rv = xfrm6_tunnel_register(&xfrm6_tunnel_handler, AF_INET6); |
| + if (rv < 0) |
| goto unreg; |
| - if (xfrm6_tunnel_register(&xfrm46_tunnel_handler, AF_INET)) |
| + rv = xfrm6_tunnel_register(&xfrm46_tunnel_handler, AF_INET); |
| + if (rv < 0) |
| goto dereg6; |
| - if (xfrm6_tunnel_spi_init() < 0) |
| + rv = xfrm6_tunnel_spi_init(); |
| + if (rv < 0) |
| goto dereg46; |
| return 0; |
| |
| @@ -361,7 +367,7 @@ dereg6: |
| unreg: |
| xfrm_unregister_type(&xfrm6_tunnel_type, AF_INET6); |
| err: |
| - return -EAGAIN; |
| + return rv; |
| } |
| |
| static void __exit xfrm6_tunnel_fini(void) |