[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] Cleanup error paths in xen/common/dom0_ops.c
I've written an automated dom0_op generator in an effort to test the libxc rewrite. The tool is still awfully primative and the rewrite is not yet complete but I wanted to post fixes for some bugs the tool found so I wouldn't forget. The first makes sure that builddomain returns ESRCH when passed an invalid domain ID (this is what every other dom0_op returns). The second makes sure that unpausedomain returns EINVAL if you try to unpause yourself. This is the behavior of pausedomain and is a bit more sane than just returning 0. I've tested this on today's unstable (able to boot and create domains with Xend just as before). Regards, Anthony Liguori Signed-off-by: Anthony Liguori (aliguori@xxxxxxxxxx) --- xen-unstable/xen/common/dom0_ops.c~ 2005-03-08 22:12:28.000000000 -0600 +++ xen-unstable/xen/common/dom0_ops.c 2005-03-09 14:03:05.000000000 -0600 @@ -114,7 +114,7 @@ case DOM0_BUILDDOMAIN: { struct domain *d = find_domain_by_id(op->u.builddomain.domain); - ret = -EINVAL; + ret = -ESRCH; if ( d != NULL ) { ret = final_setup_guest(d, &op->u.builddomain); @@ -147,10 +147,13 @@ if ( d != NULL ) { ret = -EINVAL; - if ( test_bit(DF_CONSTRUCTED, &d->d_flags) ) + if ( d != current->domain ) { - domain_unpause_by_systemcontroller(d); - ret = 0; + if ( test_bit(DF_CONSTRUCTED, &d->d_flags) ) + { + domain_unpause_by_systemcontroller(d); + ret = 0; + } } put_domain(d); }
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |