bug #239173 bug #242953 Index: xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== --- xen-4.0.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py +++ xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py @@ -3287,7 +3287,7 @@ class XendDomainInfo: (fn, BOOTLOADER_LOOPBACK_DEVICE)) vbd = { - 'mode': 'RO', + 'mode': 'RW', 'device': BOOTLOADER_LOOPBACK_DEVICE, } Index: xen-4.0.0-testing/tools/ioemu-remote/xenstore.c =================================================================== --- xen-4.0.0-testing.orig/tools/ioemu-remote/xenstore.c +++ xen-4.0.0-testing/tools/ioemu-remote/xenstore.c @@ -397,9 +397,9 @@ void xenstore_parse_domain_config(int hv { char **e_danger = NULL; char *buf = NULL; - char *fpath = NULL, *bpath = NULL, + char *fpath = NULL, *bpath = NULL, *btype = NULL, *dev = NULL, *params = NULL, *drv = NULL; - int i, ret; + int i, ret, is_tap; unsigned int len, num, hd_index, pci_devid = 0; BlockDriverState *bs; BlockDriver *format; @@ -439,6 +439,14 @@ void xenstore_parse_domain_config(int hv e_danger[i]); 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; @@ -715,6 +723,7 @@ void xenstore_parse_domain_config(int hv free(danger_type); free(params); free(dev); + free(btype); free(bpath); free(buf); free(danger_buf);