From: Gurucharan Shetty Date: Thu, 17 Jan 2013 18:08:47 +0000 (-0800) Subject: debian: Change openvswitch restart logic for kernel package. X-Git-Tag: sliver-openvswitch-1.9.90-3~8^2~16 X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=2c11563ad2967db7e5131f763c4d1107919b901e debian: Change openvswitch restart logic for kernel package. Currently, every time we install the non-dkms openvswitch kernel package, we restart openvswitch. This has no useful effect when an Open vSwitch kernel module is already loaded, because "/etc/init.d/openvswitch restart" does not load the new version of the kernel module. With this patch, we start openvswitch if there is no kernel module currently loaded (which is a case for a fresh install of openvswitch). This will load the kernel module. If someone wants to use the latest kernel module after an upgrade, they need to run "/etc/init.d/openvswitch-switch force-reload-kmod" manually. Issue #13556 Signed-off-by: Gurucharan Shetty --- diff --git a/debian/openvswitch-datapath-module-_KVERS_.postinst.modules.in b/debian/openvswitch-datapath-module-_KVERS_.postinst.modules.in index 2ed47533a..3ed480080 100755 --- a/debian/openvswitch-datapath-module-_KVERS_.postinst.modules.in +++ b/debian/openvswitch-datapath-module-_KVERS_.postinst.modules.in @@ -7,17 +7,21 @@ set -e #DEBHELPER# -# If the switch is running, restart it. This ensures that we are using the -# latest kernel module, because the init script will unload and reload the -# module. +# If the kernel module is already loaded, we have nothing to do here. +# A force-reload-kmod should be run manually to use the new kernel module. +if [ -e /sys/module/openvswitch ] || [ -e /sys/module/openvswitch_mod ]; then + exit 0 +fi + +# If the kernel module is not loaded, then it is likely because none +# was installed before and therefore Open vSwitch couldn't be started. +# Try to start it now. # # (Ideally we'd only want to do this if this package corresponds to the # running kernel, but I don't know a reliable way to check.) INIT=/etc/init.d/openvswitch-switch -if test -x $INIT && $INIT status; then - $INIT restart || true +if test -x $INIT; then + $INIT start || true fi exit 0 - -