[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] scripts/blktap: add check for file error



/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@xxxxxxxxxx


diffstat output:
 blktap |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletion(-)

Signed-off-by: Ryan Harper <ryanh@xxxxxxxxxx>
---
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

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.