bug #239173 bug #242953 Index: xen-3.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== --- xen-3.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py +++ xen-3.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -2102,7 +2102,7 @@ class XendDomainInfo: (fn, BOOTLOADER_LOOPBACK_DEVICE)) vbd = { - 'mode': 'RO', + 'mode': 'RW', 'device': BOOTLOADER_LOOPBACK_DEVICE, } Index: xen-3.2-testing/tools/ioemu/xenstore.c =================================================================== --- xen-3.2-testing.orig/tools/ioemu/xenstore.c +++ xen-3.2-testing/tools/ioemu/xenstore.c @@ -88,9 +88,9 @@ void xenstore_parse_domain_config(int do { char **e = NULL; char *buf = NULL, *path; - char *fpath = NULL, *bpath = NULL, + char *fpath = NULL, *bpath = NULL, *btype = NULL, *dev = NULL, *params = NULL, *type = NULL, *drv = NULL; - int i, is_scsi, is_hdN = 0; + int i, is_scsi, is_tap, is_hdN = 0; unsigned int len, num, hd_index; for(i = 0; i < MAX_DISKS + MAX_SCSI_DISKS; i++) @@ -117,6 +117,14 @@ void xenstore_parse_domain_config(int do bpath = xs_read(xsh, XBT_NULL, buf, &len); if (bpath == NULL) continue; + /* check to see if type is tap or not */ + if (pasprintf(&buf, "%s/type", bpath) == -1) + continue; + free(btype); + btype = xs_read(xsh, XBT_NULL, buf, &len); + if (btype == NULL) + continue; + is_tap = !strncmp(btype, "tap", 3); /* read the name of the device */ if (pasprintf(&buf, "%s/dev", bpath) == -1) continue; @@ -251,6 +259,7 @@ void xenstore_parse_domain_config(int do free(type); free(params); free(dev); + free(btype); free(bpath); free(buf); free(path);