From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ryan Harper Subject: [PATCH] scripts/blktap: add check for file error Date: Tue, 7 Nov 2006 17:47:59 -0600 Message-ID: <20061107234759.GA12095@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org /etc/xen/scripts/bkltap doesn't bother to check if the file specified in your config exists. The domain will launch and the root device is not found. Rather than confuse the user, do some checking up-front and error out when the specified file is not found. Now users will see the following error: [root@bebop ~]# xm create -c 128 Using config file "/etc/xen/128". Error: Device 51713 (tap) could not be connected. /tmp/128.img does not exist -- Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx (512) 838-9253 T/L: 678-9253 ryanh@us.ibm.com diffstat output: blktap | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletion(-) Signed-off-by: Ryan Harper --- diff -r 5a41ea282c86 tools/examples/blktap --- a/tools/examples/blktap Tue Nov 07 11:54:52 2006 +0000 +++ b/tools/examples/blktap Tue Nov 07 17:43:36 2006 -0600 @@ -4,12 +4,26 @@ dir=$(dirname "$0") . "$dir/xen-hotplug-common.sh" +. "$dir/block-common.sh" findCommand "$@" +t=$(xenstore_read_default "$XENBUS_PATH/type" 'MISSING') +if [ -n "$t" ] +then + p=$(xenstore_read "$XENBUS_PATH/params") + # if we have a ':', chew from head including : + if echo $p | grep -q \: + then + p=${p#*:} + fi +fi +file=$(readlink -f "$p") || ebusy "$p does not exist." + if [ "$command" == 'add' ] then - success + [ -e "$file" ] || { ebusy $file does not exist; } + success fi exit 0