diff options
author | Bill Nottingham <notting@redhat.com> | 2009-03-11 13:32:18 -0400 |
---|---|---|
committer | Bill Nottingham <notting@redhat.com> | 2009-03-11 13:32:18 -0400 |
commit | 8487682c3443413b0ca3325237410d8c2ba4f11e (patch) | |
tree | a9c4a0bf85ad5b599655c63636aa4ec6dfcb6f06 | |
parent | bd403c37fc1593cfbdaaa4abc7d0dd7da19c4b18 (diff) | |
download | initscripts-8487682c3443413b0ca3325237410d8c2ba4f11e.tar initscripts-8487682c3443413b0ca3325237410d8c2ba4f11e.tar.gz initscripts-8487682c3443413b0ca3325237410d8c2ba4f11e.tar.bz2 initscripts-8487682c3443413b0ca3325237410d8c2ba4f11e.tar.xz initscripts-8487682c3443413b0ca3325237410d8c2ba4f11e.zip |
Cleanup bridges better on ifdown (#463325, <sean@bruenor@org>)
-rwxr-xr-x | sysconfig/network-scripts/ifdown-eth | 22 |
1 files changed, 11 insertions, 11 deletions
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 |