Hi All , I am unable to understand the below code snippet. Any explanation
would be of great help.
File: net/ipv4/route.c
Routine: rt_intern_hash()
...
...
int attempts = ! in_softirq();
...
...
..
if( attempts-- > 0 )
{
...
...
rt_garbage_collect();
...
...
}
The code inside the 'if' block runs only if the local_bh_count is zero. In
effect, the garbage collection is done only if local_bh_count is zero.
So, in a situation wherein neighbour tables are full and local_bh_count is
not zero, then we have to bear the dreaded "neighbour table overflow"
message.
Why is it done the way it is ?
Thanks a lot, in advance !
Cheers,
Raj