dect
/
linux-2.6
Archived
13
0
Fork 0

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: Lin Ming <mlin@ss.pku.edu.cn>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Lin Ming 2012-09-25 15:17:07 +00:00 committed by David S. Miller
parent 24cad1b4ce
commit 188c517a05
1 changed files with 6 additions and 14 deletions

View 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) {