bonding: arp_ip_count and arp_targets can be wrong
authornikolay@redhat.com <nikolay@redhat.com>
Sat, 18 May 2013 01:18:30 +0000 (01:18 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 20 May 2013 06:25:49 +0000 (23:25 -0700)
commit5a5c5fd48e3bcd57572e9a7a4964ed8f38a20b87
tree627125a3d7ad9066549058aa0f4124b00091722c
parentacca2674a71816c5c9d0caa81fecd33b491fd68f
bonding: arp_ip_count and arp_targets can be wrong

When getting arp_ip_targets if we encounter a bad IP, arp_ip_count still
gets increased and all the targets after the wrong one will not be probed
if arp_interval is enabled after that (unless a new IP target is added
through sysfs) because of the zero entry, in this case reading
arp_ip_target through sysfs will show valid targets even if there's a
zero entry.
Example: 1.2.3.4,4.5.6.7,blah,5.6.7.8
When retrieving the list from arp_ip_target the output would be:
1.2.3.4,4.5.6.7,5.6.7.8
but there will be a 0 entry between 4.5.6.7 and 5.6.7.8. If arp_interval
is enabled after that 5.6.7.8 will never be checked because of that.

Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c