[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] libxl: do not read f.e. xenstore dir in disk list function
# HG changeset patch # User Ian Campbell <ian.campbell@xxxxxxxxxx> # Date 1318941375 -3600 # Node ID 2b6d3f4b78fc3be33e40826769bbc719cd6f907b # Parent f2a50026376cb070df4f2023520395ebb722b41c libxl: do not read f.e. xenstore dir in disk list function Instead store a duplicate of the "device-type" node in the backend dir and use that instead. This maintains the invariant that the list function is always "safe". Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Acked-by: Ian Jackson <ian.jackson.citrix.com> Committed-by: Ian Jackson <ian.jackson.citrix.com> --- diff -r f2a50026376c -r 2b6d3f4b78fc tools/libxl/libxl.c --- a/tools/libxl/libxl.c Tue Oct 18 10:35:56 2011 +0100 +++ b/tools/libxl/libxl.c Tue Oct 18 13:36:15 2011 +0100 @@ -1018,6 +1018,8 @@ flexarray_append(back, libxl__device_disk_string_of_backend(disk->backend)); flexarray_append(back, "mode"); flexarray_append(back, disk->readwrite ? "w" : "r"); + flexarray_append(back, "device-type"); + flexarray_append(back, disk->is_cdrom ? "cdrom" : "disk"); flexarray_append(front, "backend-id"); flexarray_append(front, libxl__sprintf(&gc, "%d", disk->backend_domid)); @@ -1512,7 +1514,6 @@ libxl_ctx *ctx = libxl__gc_owner(gc); unsigned int len; char *tmp; - const char *fe_path; /* XXX unsafe */ memset(disk, 0, sizeof(*disk)); @@ -1544,10 +1545,8 @@ else disk->readwrite = 0; - fe_path = libxl__xs_read(gc, XBT_NULL, - libxl__sprintf(gc, "%s/frontend", be_path)); tmp = libxl__xs_read(gc, XBT_NULL, - libxl__sprintf(gc, "%s/device-type", fe_path)); + libxl__sprintf(gc, "%s/device-type", be_path)); disk->is_cdrom = !strcmp(tmp, "cdrom"); disk->format = LIBXL_DISK_FORMAT_UNKNOWN; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |