]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/xen.git/commitdiff
network-bridge: Fix for bonding
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 22 Apr 2009 10:26:37 +0000 (11:26 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 22 Apr 2009 10:26:37 +0000 (11:26 +0100)
If ${netdev} is bonding, brctl addif ${bridge} ${pdev} fails:
  can't add ${pdev} to bridge ${bridge}: Invalid argument
Because ${pdev} has no slaves at this point.=20
# Notice that ifdown ${netdev} clears slaves of ${netdev}.

This patch restores slaves before add_to_bridge2 ${bridge} ${pdev}.

Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
tools/hotplug/Linux/network-bridge

index 091b8beb3e917edf92e1ece6a42d7d5684d65e9a..954c0160b79a1860f61c540e5745dcf3e5e1b6de 100644 (file)
@@ -223,6 +223,10 @@ op_start () {
 
     preiftransfer ${netdev}
     transfer_addrs ${netdev} ${tdev}
+    # Remember slaves for bonding interface.
+    if [ -e /sys/class/net/${netdev}/bonding/slaves ]; then
+       slaves=`cat /sys/class/net/${netdev}/bonding/slaves`
+    fi
     # Remember the IP details for do_ifup.
     get_ip_info ${netdev}
     if ! ifdown ${netdev}; then
@@ -234,6 +238,11 @@ op_start () {
 
     setup_bridge_port ${pdev}
 
+    # Restore slaves
+    if [ -n "${slaves}" ]; then
+       ip link set ${pdev} up
+       ifenslave ${pdev} ${slaves}
+    fi
     add_to_bridge2 ${bridge} ${pdev}
     do_ifup ${bridge}