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:
Eric Dumazet 2010-11-04 01:21:39 +00:00 committed by David S. Miller
parent cccbe5ef85
commit 1f1b9c9990

View File

@ -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 */