X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=debian%2Fopenvswitch-switch.init;h=481b29c997a740c5ae5442295459417421a99b6d;hb=HEAD;hp=d84c1b671ca0adce99295cc7fa5ca906c97d10bf;hpb=780325b5b8d4c0552b4b7719e0a38200d99f6b08;p=sliver-openvswitch.git diff --git a/debian/openvswitch-switch.init b/debian/openvswitch-switch.init index d84c1b671..481b29c99 100755 --- a/debian/openvswitch-switch.init +++ b/debian/openvswitch-switch.init @@ -31,6 +31,7 @@ test -e /etc/default/openvswitch-switch && . /etc/default/openvswitch-switch network_interfaces () { + [ -z "${RUNLEVEL}" ] && return INTERFACES="/etc/network/interfaces" [ -e "${INTERFACES}" ] || return bridges=`awk '{ if ($1 == "allow-ovs") { print $2; } }' "${INTERFACES}"` @@ -75,10 +76,35 @@ stop () { } restart () { - # OVS_RESTART_SAVE_FLOWS can be set by package postinst script. - if [ "$OVS_RESTART_SAVE_FLOWS" = "yes" ] || \ - [ "$1" = "--save-flows=yes" ]; then + # OVS_FORCE_RELOAD_KMOD can be set by package postinst script. + if [ "$1" = "--save-flows=yes" ] || \ + [ "${OVS_FORCE_RELOAD_KMOD}" = "no" ]; then start restart + elif [ "${OVS_FORCE_RELOAD_KMOD}" = "yes" ]; then + depmod -a + + if [ -e /sys/module/openvswitch ]; then + LOADED_SRCVERSION=`cat /sys/module/openvswitch/srcversion` + LOADED_VERSION=`cat /sys/module/openvswitch/version` + elif [ -e /sys/module/openvswitch_mod ]; then + LOADED_SRCVERSION=`cat /sys/module/openvswitch_mod/srcversion` + LOADED_VERSION=`cat /sys/module/openvswitch_mod/version` + fi + SRCVERSION=`modinfo -F srcversion openvswitch 2>/dev/null` + VERSION=`modinfo -F version openvswitch 2>/dev/null` + + ovs_ctl_log "Package upgrading:\n"\ + "Loaded version: ${LOADED_VERSION} ${LOADED_SRCVERSION}.\n"\ + "Version on disk: ${VERSION} ${SRCVERSION}." + + # If the kernel module was previously loaded and it is different than + # the kernel module on disk, then do a 'force-reload-kmod'. + if [ -n "${LOADED_SRCVERSION}" ] && [ -n "${SRCVERSION}" ] && \ + [ "${SRCVERSION}" != "${LOADED_SRCVERSION}" ]; then + start force-reload-kmod + else + start restart + fi else stop start