Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 188c517a authored by Lin Ming's avatar Lin Ming Committed by David S. Miller
Browse files

ipv6: return errno pointers consistently for fib6_add_1()



fib6_add_1() should consistently return errno pointers,
rather than a mixture of NULL and errno pointers.

Signed-off-by: default avatarLin Ming <mlin@ss.pku.edu.cn>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 24cad1b4
Loading
Loading
Loading
Loading
+6 −14
Original line number Diff line number Diff line
@@ -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,11 +837,9 @@ 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) {
			fn->leaf = rt;