forked from luck/tmp_suning_uos_patched
fib: fib_result_assign() should not change fib refcounts
After commit ebc0ffae5
(RCU conversion of fib_lookup()),
fib_result_assign() should not change fib refcounts anymore.
Thanks to Michael who did the bisection and bug report.
Reported-by: Michael Ellerman <michael@ellerman.id.au>
Tested-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
cccbe5ef85
commit
1f1b9c9990
|
@ -47,11 +47,8 @@ extern int fib_detect_death(struct fib_info *fi, int order,
|
||||||
static inline void fib_result_assign(struct fib_result *res,
|
static inline void fib_result_assign(struct fib_result *res,
|
||||||
struct fib_info *fi)
|
struct fib_info *fi)
|
||||||
{
|
{
|
||||||
if (res->fi != NULL)
|
/* we used to play games with refcounts, but we now use RCU */
|
||||||
fib_info_put(res->fi);
|
|
||||||
res->fi = fi;
|
res->fi = fi;
|
||||||
if (fi != NULL)
|
|
||||||
atomic_inc(&fi->fib_clntref);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* _FIB_LOOKUP_H */
|
#endif /* _FIB_LOOKUP_H */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user