aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-04-02 11:48:10 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-04-02 11:48:10 +0100
commit0c29f97df0f61098c96a411ad745bb24e0adc7ae (patch)
tree92cf7d0a98a4d85ebc0f5af18e33865add944ba6
parent58740d22ab313771dc1a8829f69a17e620a2d3e4 (diff)
downloadxen-0c29f97df0f61098c96a411ad745bb24e0adc7ae.tar.gz
xen-0c29f97df0f61098c96a411ad745bb24e0adc7ae.tar.bz2
xen-0c29f97df0f61098c96a411ad745bb24e0adc7ae.zip
network-bridge: Fix do_ifup in the case of ${bridge} != ${netdev}
On RHEL5.2, ifup ${bridge} fails if ${bridge} != ${netdev}, because RHEL5.2's ifup ${bridge} runs the following sequence: 1. Search CONFIG that has the same mac address of ${bridge}.=20 ifcfg-${netdev} is found. 2. Run "ip link set dev ${netdev} up". # ${bridge} is expected. 3. Output "Failed to bring up ${netdev}." Because ${netdev} does not exist. Thus, do_ifup() should not use ifup if ${bridge} != ${netdev}. Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
-rw-r--r--tools/hotplug/Linux/network-bridge6
1 files changed, 3 insertions, 3 deletions
diff --git a/tools/hotplug/Linux/network-bridge b/tools/hotplug/Linux/network-bridge
index 9d7be4e2e5..091b8beb3e 100644
--- a/tools/hotplug/Linux/network-bridge
+++ b/tools/hotplug/Linux/network-bridge
@@ -106,7 +106,7 @@ get_ip_info() {
}
do_ifup() {
- if ! ifup $1 ; then
+ if [ $1 != "${netdev}" ] || ! ifup $1 ; then
if [ -n "$addr_pfx" ] ; then
# use the info from get_ip_info()
ip addr flush $1
@@ -223,9 +223,9 @@ op_start () {
preiftransfer ${netdev}
transfer_addrs ${netdev} ${tdev}
+ # Remember the IP details for do_ifup.
+ get_ip_info ${netdev}
if ! ifdown ${netdev}; then
- # If ifdown fails, remember the IP details.
- get_ip_info ${netdev}
ip link set ${netdev} down
ip addr flush ${netdev}
fi