[IPV4]: Fix garbage collection of multipath route entries
Suresh Bhogavilli [Tue, 21 Feb 2006 21:42:22 +0000 (13:42 -0800)]
When garbage collecting route cache entries of multipath routes
in rt_garbage_collect(), entries were deleted from the hash bucket
'i' while holding a spin lock on bucket 'k' resulting in a system
hang.  Delete entries, if any, from bucket 'k' instead.

Signed-off-by: Suresh Bhogavilli <sbhogavilli@verisign.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

net/ipv4/route.c

index d82c242..fca5fe0 100644 (file)
@@ -835,7 +835,7 @@ static int rt_garbage_collect(void)
                                        int r;
 
                                        rthp = rt_remove_balanced_route(
-                                               &rt_hash_table[i].chain,
+                                               &rt_hash_table[k].chain,
                                                rth,
                                                &r);
                                        goal -= r;