# HG changeset patch # User dkiper@xxxxxxxxxxxx # Date 1266697931 -3600 # Node ID 4e0254d2adefc07b8ad97cd64a5be700a763ad0b # Parent b4041e7bbe1b62fab4e3416bbab085b07af57809 Fix for fs-backend crash when xend was not started after system boot. Signed-off-by: Daniel Kiper diff -r b4041e7bbe1b -r 4e0254d2adef tools/fs-back/fs-backend.c --- a/tools/fs-back/fs-backend.c Wed Feb 17 12:11:13 2010 +0000 +++ b/tools/fs-back/fs-backend.c Sat Feb 20 21:32:11 2010 +0100 @@ -300,7 +300,8 @@ static void await_connections(void) LIST_INIT (&mount_requests_head); assert(xsh != NULL); - fd = xenbus_get_watch_fd(); + if ((fd = xenbus_get_watch_fd()) == -1) + err(1, "xenbus_get_watch_fd: could not setup watch"); /* Infinite watch loop */ do { FD_ZERO(&fds); diff -r b4041e7bbe1b -r 4e0254d2adef tools/fs-back/fs-xenbus.c --- a/tools/fs-back/fs-xenbus.c Wed Feb 17 12:11:13 2010 +0000 +++ b/tools/fs-back/fs-xenbus.c Sat Feb 20 21:32:11 2010 +0100 @@ -105,11 +105,18 @@ int xenbus_get_watch_fd(void) int xenbus_get_watch_fd(void) { int res; +#if DEBUG + int errno_orig; +#endif assert(xsh != NULL); res = xs_watch(xsh, WATCH_NODE, "conn-watch"); if (!res) { +#if DEBUG + errno_orig = errno; FS_DEBUG("ERROR: xs_watch %s failed ret=%d errno=%d\n", WATCH_NODE, res, errno); + errno = errno_orig; +#endif return -1; } return xs_fileno(xsh);