80e28a00ec
- unmodified_drivers: handle IRQF_SAMPLE_RANDOM, it was removed in 3.6-rc1 - bnc#778105 - first XEN-PV VM fails to spawn xend: Increase wait time for disk to appear in host bootloader Modified existing xen-domUloader.diff - Disable the snapshot patches. Snapshot only supported the qcow2 image format which was poorly implemented qemu 0.10.2. Snapshot support may be restored in the future when the newer upstream qemu is used by Xen. - bnc#776995 - attaching scsi control luns with pvscsi - xend/pvscsi: fix passing of SCSI control LUNs xen-bug776995-pvscsi-no-devname.patch - xend/pvscsi: fix usage of persistant device names for SCSI devices xen-bug776995-pvscsi-persistent-names.patch - xend/pvscsi: update sysfs parser for Linux 3.0 xen-bug776995-pvscsi-sysfs-parser.patch - Update to Xen 4.2.0 RC3+ c/s 25779 - Update to Xen 4.2.0 RC2+ c/s 25765 OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=199
130 lines
4.9 KiB
Diff
130 lines
4.9 KiB
Diff
Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block.c
|
|
===================================================================
|
|
--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/block.c
|
|
+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block.c
|
|
@@ -350,7 +350,7 @@ int bdrv_file_open(BlockDriverState **pb
|
|
|
|
int bdrv_open(BlockDriverState *bs, const char *filename, int flags)
|
|
{
|
|
- return bdrv_open2(bs, filename, flags, NULL);
|
|
+ return bdrv_open2(bs, filename, flags|BDRV_O_RDWR, NULL);
|
|
}
|
|
|
|
int bdrv_open2(BlockDriverState *bs, const char *filename, int flags,
|
|
@@ -419,12 +419,13 @@ int bdrv_open2(BlockDriverState *bs, con
|
|
}
|
|
bs->drv = drv;
|
|
bs->opaque = qemu_mallocz(drv->instance_size);
|
|
- /* Note: for compatibility, we open disk image files as RDWR, and
|
|
- RDONLY as fallback */
|
|
if (!(flags & BDRV_O_FILE))
|
|
- open_flags = (flags & BDRV_O_ACCESS) | (flags & BDRV_O_CACHE_MASK);
|
|
+ open_flags = flags;
|
|
else
|
|
open_flags = flags & ~(BDRV_O_FILE | BDRV_O_SNAPSHOT);
|
|
+ if (!(open_flags & BDRV_O_RDWR))
|
|
+ bs->read_only = 1;
|
|
+
|
|
ret = drv->bdrv_open(bs, filename, open_flags);
|
|
if ((ret == -EACCES || ret == -EPERM) && !(flags & BDRV_O_FILE)) {
|
|
ret = drv->bdrv_open(bs, filename, open_flags & ~BDRV_O_RDWR);
|
|
Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/usb-msd.c
|
|
===================================================================
|
|
--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/usb-msd.c
|
|
+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/usb-msd.c
|
|
@@ -551,7 +551,7 @@ USBDevice *usb_msd_init(const char *file
|
|
s = qemu_mallocz(sizeof(MSDState));
|
|
|
|
bdrv = bdrv_new("usb");
|
|
- if (bdrv_open2(bdrv, filename, 0, drv) < 0)
|
|
+ if (bdrv_open2(bdrv, filename, BDRV_O_RDWR, drv) < 0)
|
|
goto fail;
|
|
s->bs = bdrv;
|
|
*pbs = bdrv;
|
|
Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-img.c
|
|
===================================================================
|
|
--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/qemu-img.c
|
|
+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-img.c
|
|
@@ -32,7 +32,7 @@
|
|
#endif
|
|
|
|
/* Default to cache=writeback as data integrity is not important for qemu-tcg. */
|
|
-#define BRDV_O_FLAGS BDRV_O_CACHE_WB
|
|
+#define BDRV_O_FLAGS BDRV_O_CACHE_WB
|
|
|
|
static void QEMU_NORETURN error(const char *fmt, ...)
|
|
{
|
|
@@ -185,7 +185,7 @@ static int read_password(char *buf, int
|
|
#endif
|
|
|
|
static BlockDriverState *bdrv_new_open(const char *filename,
|
|
- const char *fmt)
|
|
+ const char *fmt, int flags)
|
|
{
|
|
BlockDriverState *bs;
|
|
BlockDriver *drv;
|
|
@@ -201,7 +201,7 @@ static BlockDriverState *bdrv_new_open(c
|
|
} else {
|
|
drv = &bdrv_raw;
|
|
}
|
|
- if (bdrv_open2(bs, filename, BRDV_O_FLAGS, drv) < 0) {
|
|
+ if (bdrv_open2(bs, filename, flags, drv) < 0) {
|
|
error("Could not open '%s'", filename);
|
|
}
|
|
if (bdrv_is_encrypted(bs)) {
|
|
@@ -253,7 +253,7 @@ static int img_create(int argc, char **a
|
|
size = 0;
|
|
if (base_filename) {
|
|
BlockDriverState *bs;
|
|
- bs = bdrv_new_open(base_filename, NULL);
|
|
+ bs = bdrv_new_open(base_filename, NULL, BDRV_O_RDWR);
|
|
bdrv_get_geometry(bs, &size);
|
|
size *= 512;
|
|
bdrv_delete(bs);
|
|
@@ -332,7 +332,7 @@ static int img_commit(int argc, char **a
|
|
} else {
|
|
drv = NULL;
|
|
}
|
|
- if (bdrv_open2(bs, filename, BRDV_O_FLAGS, drv) < 0) {
|
|
+ if (bdrv_open2(bs, filename, BDRV_O_RDWR, drv) < 0) {
|
|
error("Could not open '%s'", filename);
|
|
}
|
|
ret = bdrv_commit(bs);
|
|
@@ -455,7 +455,8 @@ static int img_convert(int argc, char **
|
|
|
|
total_sectors = 0;
|
|
for (bs_i = 0; bs_i < bs_n; bs_i++) {
|
|
- bs[bs_i] = bdrv_new_open(argv[optind + bs_i], fmt);
|
|
+ bs[bs_i] = bdrv_new_open(argv[optind + bs_i], fmt,
|
|
+ BDRV_O_CACHE_WB|BDRV_O_RDONLY);
|
|
if (!bs[bs_i])
|
|
error("Could not open '%s'", argv[optind + bs_i]);
|
|
bdrv_get_geometry(bs[bs_i], &bs_sectors);
|
|
@@ -483,7 +484,7 @@ static int img_convert(int argc, char **
|
|
}
|
|
}
|
|
|
|
- out_bs = bdrv_new_open(out_filename, out_fmt);
|
|
+ out_bs = bdrv_new_open(out_filename, out_fmt, BDRV_O_CACHE_WB|BDRV_O_RDWR);
|
|
|
|
bs_i = 0;
|
|
bs_offset = 0;
|
|
@@ -706,7 +707,7 @@ static int img_info(int argc, char **arg
|
|
} else {
|
|
drv = NULL;
|
|
}
|
|
- if (bdrv_open2(bs, filename, BRDV_O_FLAGS, drv) < 0) {
|
|
+ if (bdrv_open2(bs, filename, BDRV_O_FLAGS|BDRV_O_RDWR, drv) < 0) {
|
|
error("Could not open '%s'", filename);
|
|
}
|
|
bdrv_get_format(bs, fmt_name, sizeof(fmt_name));
|
|
@@ -810,7 +811,7 @@ static void img_snapshot(int argc, char
|
|
if (!bs)
|
|
error("Not enough memory");
|
|
|
|
- if (bdrv_open2(bs, filename, 0, NULL) < 0) {
|
|
+ if (bdrv_open2(bs, filename, BDRV_O_RDWR, NULL) < 0) {
|
|
error("Could not open '%s'", filename);
|
|
}
|
|
|