From 8487682c3443413b0ca3325237410d8c2ba4f11e Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Wed, 11 Mar 2009 13:32:18 -0400 Subject: Cleanup bridges better on ifdown (#463325, ) --- sysconfig/network-scripts/ifdown-eth | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'sysconfig') diff --git a/sysconfig/network-scripts/ifdown-eth b/sysconfig/network-scripts/ifdown-eth index 3ebaff33..f5fb16f6 100755 --- a/sysconfig/network-scripts/ifdown-eth +++ b/sysconfig/network-scripts/ifdown-eth @@ -26,17 +26,6 @@ CONFIG=${1} source_config -if [ -n "${BRIDGE}" -a -x /usr/sbin/brctl ]; then - /sbin/ip link set dev ${DEVICE} down - /usr/sbin/brctl delif ${BRIDGE} ${DEVICE} - # Upon removing a device from a bridge, - # it's necessary to make radvd reload its config - [ -r /var/run/radvd/radvd.pid ] && kill -HUP `cat /var/run/radvd/radvd.pid` - if LC_ALL=C /usr/sbin/brctl show | LC_ALL=C grep -q "^${BRIDGE} .*can't get port info"; then - /usr/sbin/brctl delbr ${BRIDGE} - fi -fi - . /etc/sysconfig/network # Check to make sure the device is actually up @@ -116,6 +105,17 @@ if [ -d "/sys/class/net/${REALDEVICE}" ]; then fi [ "$retcode" = "0" ] && retcode=$? +if [ -n "${BRIDGE}" -a -x /usr/sbin/brctl ]; then + /sbin/ip link set dev ${DEVICE} down + /usr/sbin/brctl delif ${BRIDGE} ${DEVICE} + # Upon removing a device from a bridge, + # it's necessary to make radvd reload its config + [ -r /var/run/radvd/radvd.pid ] && kill -HUP `cat /var/run/radvd/radvd.pid` + if [ -d /sys/class/net/${BRIDGE}/brif ] && [ `ls -1 /sys/class/net/${BRIDGE}/brif | wc -l` -eq 0 ]; then + /usr/sbin/brctl delbr ${BRIDGE} + fi +fi + # wait up to 5 seconds for device to actually come down... waited=0 while ! check_device_down ${DEVICE} && [ "$waited" -lt 50 ] ; do -- cgit v1.2.1