diff options
author | Ian Jackson <Ian.Jackson@eu.citrix.com> | 2011-06-03 15:04:30 +0100 |
---|---|---|
committer | Ian Jackson <Ian.Jackson@eu.citrix.com> | 2011-06-03 15:04:30 +0100 |
commit | 4bf3ca7bdbf89882bfa887f451843192fa275461 (patch) | |
tree | b9839cf324ca316d5ce2b42b44e2e04f68dcd219 /tools/hotplug | |
parent | 46051f0c1cb7428de174d35246dce315493a7cb7 (diff) | |
download | xen-4bf3ca7bdbf89882bfa887f451843192fa275461.tar.gz xen-4bf3ca7bdbf89882bfa887f451843192fa275461.tar.bz2 xen-4bf3ca7bdbf89882bfa887f451843192fa275461.zip |
tools/hotplug: Fix hotplug hook script arrangements not to always fail
The new feature introduced in 23401:a44b12ee2fd3 was broken; it in
general always fails, at least if there are no hotplug scripts.
If there are no hooks, call_hooks ends up running this:
[ -x ".....*.hook" ] && . "..... *.hook"
This does not directly trigger set -e and sigerr. However, it is the
last command exected in call_hooks. So the return status of
call_hooks is an error, and thus a sigerr happens when call_hooks
returns.
The bug affects xl and xm. However xl does not detect failure of the
hotplug script.
Change the script to use if...then rather than &&, as the latter has
very confusing and undesirable semantics.
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/hotplug')
-rw-r--r-- | tools/hotplug/Linux/xen-hotplug-common.sh | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/hotplug/Linux/xen-hotplug-common.sh b/tools/hotplug/Linux/xen-hotplug-common.sh index 95beab0ec5..8f6557df73 100644 --- a/tools/hotplug/Linux/xen-hotplug-common.sh +++ b/tools/hotplug/Linux/xen-hotplug-common.sh @@ -106,7 +106,7 @@ xenstore_write() { # call_hooks() { for f in /etc/xen/scripts/${1}-${2}.d/*.hook; do - [ -x "$f" ] && . "$f" + if [ -x "$f" ]; then . "$f"; fi done } |