From: Ian Murray Date: Sat, 22 Jun 2013 12:38:11 +0000 (+0100) Subject: Xendomains was not correctly suspending domains when a STOP was issued. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~6692 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=543a2657182dbb9237d1feeb1d3193096ab2cb2d;p=xen.git Xendomains was not correctly suspending domains when a STOP was issued. The regex was not selecting the { when parsing JSON output of xl list -l. It was also not selecting (domain when parsing xl list -l when SXP selected. Pefixed { with 4 spaces, and removed an extra ( before domain in the regex string Added quotes around the grep strings so the spaces inserted into the string didn't not break the grepping. This has now been tested against 4.3RC5 Signed-off-by: Ian Murray Acked-by: Ian Campbell Acked-by: George Dunlap --- diff --git a/tools/hotplug/Linux/init.d/xendomains b/tools/hotplug/Linux/init.d/xendomains index 730541ec2e..38371af6a4 100644 --- a/tools/hotplug/Linux/init.d/xendomains +++ b/tools/hotplug/Linux/init.d/xendomains @@ -206,7 +206,7 @@ rdnames() done } -LIST_GREP='((domain\|(domid\|(name\|^{$\|"name":\|"domid":' +LIST_GREP='(domain\|(domid\|(name\|^ {$\|"name":\|"domid":' parseln() { if [[ "$1" =~ '(domain' ]] || [[ "$1" = "{" ]]; then @@ -237,7 +237,7 @@ is_running() RC=0 ;; esac - done < <($CMD list -l | grep $LIST_GREP) + done < <($CMD list -l | grep "$LIST_GREP") return $RC } @@ -319,7 +319,7 @@ all_zombies() if test "$state" != "-b---d" -a "$state" != "-----d"; then return 1; fi - done < <($CMD list -l | grep $LIST_GREP) + done < <($CMD list -l | grep "$LIST_GREP") return 0 } @@ -450,7 +450,7 @@ stop() fi kill $WDOG_PID >/dev/null 2>&1 fi - done < <($CMD list -l | grep $LIST_GREP) + done < <($CMD list -l | grep "$LIST_GREP") # NB. this shuts down ALL Xen domains (politely), not just the ones in # AUTODIR/* @@ -487,7 +487,7 @@ check_domain_up() return 0 ;; esac - done < <($CMD list -l | grep $LIST_GREP) + done < <($CMD list -l | grep "$LIST_GREP") return 1 }