From a4cbfd719bde7339ffefd641839fdbfb6305c012 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Thu, 11 Dec 2014 15:46:24 +0100 Subject: [PATCH] 95fcoe: start lldpad separately lldpad is a system-wide process, which must be started only once. So we should be separate it from fcoe-up, as it might be called several times. Signed-off-by: Hannes Reinecke Signed-off-by: Thomas Renninger (cherry picked from commit 22e837b6458d5d17d1cb6a9b09b7515746d4e098) --- modules.d/95fcoe/fcoe-up.sh | 8 -------- modules.d/95fcoe/lldpad.sh | 14 ++++++++++++++ modules.d/95fcoe/module-setup.sh | 1 + 3 files changed, 15 insertions(+), 8 deletions(-) create mode 100644 modules.d/95fcoe/lldpad.sh diff --git a/modules.d/95fcoe/fcoe-up.sh b/modules.d/95fcoe/fcoe-up.sh index 823d7acc..1d62570e 100755 --- a/modules.d/95fcoe/fcoe-up.sh +++ b/modules.d/95fcoe/fcoe-up.sh @@ -43,10 +43,6 @@ write_fcoemon_cfg() { } if [ "$dcb" = "dcb" ]; then - # Note lldpad will stay running after switchroot, the system initscripts - # are to kill it and start a new lldpad to take over. Data is transfered - # between the 2 using a shm segment - lldpad -d # wait for lldpad to be ready i=0 while [ $i -lt 60 ]; do @@ -56,10 +52,6 @@ if [ "$dcb" = "dcb" ]; then i=$(($i+1)) done - # on some systems lldpad needs some time - # sleep until we find a better solution - sleep 30 - while [ $i -lt 60 ]; do dcbtool sc "$netif" dcb on && break info "Retrying to turn dcb on" diff --git a/modules.d/95fcoe/lldpad.sh b/modules.d/95fcoe/lldpad.sh new file mode 100644 index 00000000..d06a3bd8 --- /dev/null +++ b/modules.d/95fcoe/lldpad.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Note lldpad will stay running after switchroot, the system initscripts +# are to kill it and start a new lldpad to take over. Data is transfered +# between the 2 using a shm segment +lldpad -d +# wait for lldpad to be ready +i=0 +while [ $i -lt 60 ]; do + lldptool -p && break + info "Waiting for lldpad to be ready" + sleep 1 + i=$(($i+1)) +done diff --git a/modules.d/95fcoe/module-setup.sh b/modules.d/95fcoe/module-setup.sh index ba10b0ab..c000b3be 100755 --- a/modules.d/95fcoe/module-setup.sh +++ b/modules.d/95fcoe/module-setup.sh @@ -36,6 +36,7 @@ install() { inst "$moddir/fcoe-up.sh" "/sbin/fcoe-up" inst "$moddir/fcoe-edd.sh" "/sbin/fcoe-edd" inst "$moddir/fcoe-genrules.sh" "/sbin/fcoe-genrules.sh" + inst_hook pre-trigger 03 "$moddir/lldpad.sh" inst_hook cmdline 99 "$moddir/parse-fcoe.sh" inst_hook cleanup 90 "$moddir/cleanup-fcoe.sh" dracut_need_initqueue