[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 1/7] libxl: Add ERROR_DOMAIN_NOTFOUND for libxl_domain_info when it cannot find the domain
Please remember to CC all the relevant maintainers, e.g. Wei and Ian in addition to me. MAINTAINERS is helpful here. On Mon, 2015-03-23 at 14:20 -0400, Konrad Rzeszutek Wilk wrote: > And use that for all of its callers in the tree. > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> although I started a conversation in response to a similar patch from Ian J regarding the semantics (I cc-d you). > --- > tools/libxl/libxl.c | 19 +++++++++++-------- > tools/libxl/libxl.h | 9 ++++++++- > tools/libxl/libxl_types.idl | 1 + > tools/libxl/xl_cmdimpl.c | 4 ++-- > 4 files changed, 22 insertions(+), 11 deletions(-) > > diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c > index 46de4f7..0b57bae 100644 > --- a/tools/libxl/libxl.c > +++ b/tools/libxl/libxl.c > @@ -455,7 +455,7 @@ int libxl__domain_rename(libxl__gc *gc, uint32_t domid, > /* update /vm/<uuid>/name */ > rc = libxl_domain_info(ctx, &info, domid); > if (rc) > - goto x_fail; > + goto x_rc; > > uuid = GCSPRINTF(LIBXL_UUID_FMT, LIBXL_UUID_BYTES(info.uuid)); > vm_name_path = GCSPRINTF("/vm/%s/name", uuid); > @@ -698,7 +698,7 @@ int libxl_domain_info(libxl_ctx *ctx, libxl_dominfo > *info_r, > LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "getting domain info list"); > return ERROR_FAIL; > } > - if (ret==0 || xcinfo.domain != domid) return ERROR_INVAL; > + if (ret==0 || xcinfo.domain != domid) return ERROR_DOMAIN_NOTFOUND; > > if (info_r) > xcinfo2xlinfo(ctx, &xcinfo, info_r); > @@ -1577,7 +1577,7 @@ void libxl__destroy_domid(libxl__egc *egc, > libxl__destroy_domid_state *dis) > switch(rc) { > case 0: > break; > - case ERROR_INVAL: > + case ERROR_DOMAIN_NOTFOUND: > LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "non-existant domain %d", domid); > default: > goto out; > @@ -5449,14 +5449,16 @@ static int libxl__set_vcpuonline_xenstore(libxl__gc > *gc, uint32_t domid, > libxl_dominfo info; > char *dompath; > xs_transaction_t t; > - int i, rc = ERROR_FAIL; > + int i, rc; > > libxl_dominfo_init(&info); > > - if (libxl_domain_info(CTX, &info, domid) < 0) { > + rc = libxl_domain_info(CTX, &info, domid); > + if (rc < 0) { > LOGE(ERROR, "getting domain info list"); > goto out; > } > + rc = ERROR_FAIL; > if (!(dompath = libxl__xs_get_dompath(gc, domid))) > goto out; > > @@ -5480,14 +5482,15 @@ static int libxl__set_vcpuonline_qmp(libxl__gc *gc, > uint32_t domid, > libxl_bitmap *cpumap) > { > libxl_dominfo info; > - int i; > + int i, rc; > > libxl_dominfo_init(&info); > > - if (libxl_domain_info(CTX, &info, domid) < 0) { > + rc = libxl_domain_info(CTX, &info, domid); > + if (rc < 0) { > LOGE(ERROR, "getting domain info list"); > libxl_dominfo_dispose(&info); > - return ERROR_FAIL; > + return rc; > } > for (i = 0; i <= info.vcpu_max_id; i++) { > if (libxl_bitmap_test(cpumap, i)) { > diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h > index 6bc75c5..1cf5699 100644 > --- a/tools/libxl/libxl.h > +++ b/tools/libxl/libxl.h > @@ -179,6 +179,11 @@ > #define LIBXL_HAVE_BUILDINFO_HVM_MMIO_HOLE_MEMKB 1 > > /* > + * libxl_domain_info returns ERROR_DOMAIN_NOTFOUND if the domain > + * is not present, instead of ERROR_INVAL. > + */ > +#define LIBXL_HAVE_ERROR_DOMAIN_NOTFOUND 1 > +/* > * libxl ABI compatibility > * > * The only guarantee which libxl makes regarding ABI compatibility > @@ -1104,7 +1109,9 @@ int libxl_console_get_tty(libxl_ctx *ctx, uint32_t > domid, int cons_num, > */ > int libxl_primary_console_get_tty(libxl_ctx *ctx, uint32_t domid_vm, char > **path); > > -/* May be called with info_r == NULL to check for domain's existance */ > +/* May be called with info_r == NULL to check for domain's existence. > + * Returns ERROR_DOMAIN_NOTFOUND if domain does not exist (used to return > + * ERROR_INVAL for this scenario). */ > int libxl_domain_info(libxl_ctx*, libxl_dominfo *info_r, > uint32_t domid); > > diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl > index 0866433..117b61d 100644 > --- a/tools/libxl/libxl_types.idl > +++ b/tools/libxl/libxl_types.idl > @@ -64,6 +64,7 @@ libxl_error = Enumeration("error", [ > (-18, "REMUS_DEVOPS_DOES_NOT_MATCH"), > (-19, "REMUS_DEVICE_NOT_SUPPORTED"), > (-20, "VNUMA_CONFIG_INVALID"), > + (-21, "DOMAIN_NOTFOUND"), > ], value_namespace = "") > > libxl_domain_type = Enumeration("domain_type", [ > diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c > index 394b55d..1c07ac6 100644 > --- a/tools/libxl/xl_cmdimpl.c > +++ b/tools/libxl/xl_cmdimpl.c > @@ -4736,7 +4736,7 @@ int main_list(int argc, char **argv) > } else if (optind == argc-1) { > uint32_t domid = find_domain(argv[optind]); > rc = libxl_domain_info(ctx, &info_buf, domid); > - if (rc == ERROR_INVAL) { > + if (rc == ERROR_DOMAIN_NOTFOUND) { > fprintf(stderr, "Error: Domain \'%s\' does not exist.\n", > argv[optind]); > return -rc; > @@ -5507,7 +5507,7 @@ int main_sharing(int argc, char **argv) > } else if (optind == argc-1) { > uint32_t domid = find_domain(argv[optind]); > rc = libxl_domain_info(ctx, &info_buf, domid); > - if (rc == ERROR_INVAL) { > + if (rc == ERROR_DOMAIN_NOTFOUND) { > fprintf(stderr, "Error: Domain \'%s\' does not exist.\n", > argv[optind]); > return -rc; _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |