diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-11-04 01:21:39 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-11-04 12:05:32 -0700 |
commit | 1f1b9c9990205759aae31b7734b0ede41a867f32 (patch) | |
tree | aba367dd7280ff38932c881a0fcf5356bea53df2 /net | |
parent | cccbe5ef85284621d19e5b2b1c61cc0506bc9dee (diff) | |
download | op-kernel-dev-1f1b9c9990205759aae31b7734b0ede41a867f32.zip op-kernel-dev-1f1b9c9990205759aae31b7734b0ede41a867f32.tar.gz |
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>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/fib_lookup.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/net/ipv4/fib_lookup.h b/net/ipv4/fib_lookup.h index a29edf2..c079cc0 100644 --- a/net/ipv4/fib_lookup.h +++ b/net/ipv4/fib_lookup.h @@ -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, struct fib_info *fi) { - if (res->fi != NULL) - fib_info_put(res->fi); + /* we used to play games with refcounts, but we now use RCU */ res->fi = fi; - if (fi != NULL) - atomic_inc(&fi->fib_clntref); } #endif /* _FIB_LOOKUP_H */ |