ipv6: return errno pointers consistently for fib6_add_1()
authorLin Ming <mlin@ss.pku.edu.cn>
Tue, 25 Sep 2012 15:17:07 +0000 (15:17 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 28 Sep 2012 22:48:28 +0000 (18:48 -0400)
fib6_add_1() should consistently return errno pointers,
rather than a mixture of NULL and errno pointers.

Signed-off-by: Lin Ming <mlin@ss.pku.edu.cn>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ip6_fib.c

index 286acfc21250cd760565b182cbc2d3d4490463dd..24995a93ef8c94b22224dd344a9d474a72d28cc1 100644 (file)
@@ -514,7 +514,7 @@ static struct fib6_node * fib6_add_1(struct fib6_node *root, void *addr,
        ln = node_alloc();
 
        if (!ln)
-               return NULL;
+               return ERR_PTR(-ENOMEM);
        ln->fn_bit = plen;
 
        ln->parent = pn;
@@ -561,7 +561,7 @@ insert_above:
                                node_free(in);
                        if (ln)
                                node_free(ln);
-                       return NULL;
+                       return ERR_PTR(-ENOMEM);
                }
 
                /*
@@ -611,7 +611,7 @@ insert_above:
                ln = node_alloc();
 
                if (!ln)
-                       return NULL;
+                       return ERR_PTR(-ENOMEM);
 
                ln->fn_bit = plen;
 
@@ -777,11 +777,8 @@ int fib6_add(struct fib6_node *root, struct rt6_info *rt, struct nl_info *info)
 
        if (IS_ERR(fn)) {
                err = PTR_ERR(fn);
-               fn = NULL;
-       }
-
-       if (!fn)
                goto out;
+       }
 
        pn = fn;
 
@@ -820,15 +817,12 @@ int fib6_add(struct fib6_node *root, struct rt6_info *rt, struct nl_info *info)
                                        allow_create, replace_required);
 
                        if (IS_ERR(sn)) {
-                               err = PTR_ERR(sn);
-                               sn = NULL;
-                       }
-                       if (!sn) {
                                /* If it is failed, discard just allocated
                                   root, and then (in st_failure) stale node
                                   in main tree.
                                 */
                                node_free(sfn);
+                               err = PTR_ERR(sn);
                                goto st_failure;
                        }
 
@@ -843,10 +837,8 @@ int fib6_add(struct fib6_node *root, struct rt6_info *rt, struct nl_info *info)
 
                        if (IS_ERR(sn)) {
                                err = PTR_ERR(sn);
-                               sn = NULL;
-                       }
-                       if (!sn)
                                goto st_failure;
+                       }
                }
 
                if (!fn->leaf) {