aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsysconfig/network-scripts/ifdown-eth22
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