]> Pileus Git - ~andy/linux/blobdiff - net/ipv6/ip6_fib.c
ipv6: return errno pointers consistently for fib6_add_1()
[~andy/linux] / 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) {