From: Ethan Jackson Date: Mon, 28 Nov 2011 23:14:11 +0000 (-0800) Subject: bond: Revalidate when lacp_negotiated status changes. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4592d0e2fb90aa9a9592a433a8e01aaeb513b2a9;p=openvswitch bond: Revalidate when lacp_negotiated status changes. Typically, when the lacp_negotiated flag changes, the result of bond_is_tcp_hash() will change as well. However, for certain bond types (SLB, Active-Backup, etc) this may not be true. Since the lacp_negotiated flag affects the results of bond_check_admissibility() revalidation needs to happen whenever it changes. This patch makes the revalidation explicit. Signed-off-by: Ethan Jackson --- diff --git a/lib/bond.c b/lib/bond.c index 79fc18c1..a2105ca3 100644 --- a/lib/bond.c +++ b/lib/bond.c @@ -407,7 +407,10 @@ bond_run(struct bond *bond, struct tag_set *tags, bool lacp_negotiated) struct bond_slave *slave; bool is_tcp_hash = bond_is_tcp_hash(bond); - bond->lacp_negotiated = lacp_negotiated; + if (bond->lacp_negotiated != lacp_negotiated) { + bond->lacp_negotiated = lacp_negotiated; + bond->bond_revalidate = true; + } /* Enable slaves based on link status and LACP feedback. */ HMAP_FOR_EACH (slave, hmap_node, &bond->slaves) {