- Update to Xen 4.4.0 RC1 c/s 28233
- Drop 32bit support from spec file - Dropped 520d417d-xen-Add-stdbool.h-workaround-for-BSD.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=282
This commit is contained in:
committed by
Git OBS Bridge
parent
7057c8e7c9
commit
e09562d587
72
bdrv_open2_flags_2.patch
Normal file
72
bdrv_open2_flags_2.patch
Normal file
@@ -0,0 +1,72 @@
|
||||
Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
|
||||
+++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
|
||||
@@ -225,6 +225,7 @@ static int open_disk(struct td_state *s,
|
||||
BlockDriver* drv;
|
||||
char* devname;
|
||||
static int devnumber = 0;
|
||||
+ int flags = readonly ? BDRV_O_RDONLY : BDRV_O_RDWR;
|
||||
int i;
|
||||
|
||||
DPRINTF("Opening %s as blktap%d\n", path, devnumber);
|
||||
@@ -247,7 +248,7 @@ static int open_disk(struct td_state *s,
|
||||
DPRINTF("%s driver specified\n", drv ? drv->format_name : "No");
|
||||
|
||||
/* Open the image */
|
||||
- if (bdrv_open2(bs, path, 0, drv) != 0) {
|
||||
+ if (bdrv_open2(bs, path, flags, drv) != 0) {
|
||||
fprintf(stderr, "Could not open image file %s\n", path);
|
||||
return -ENOMEM;
|
||||
}
|
||||
Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/xenstore.c
|
||||
+++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
|
||||
@@ -135,7 +135,8 @@ static void insert_media(void *opaque)
|
||||
else
|
||||
format = &bdrv_raw;
|
||||
|
||||
- bdrv_open2(bs, media_filename[i], 0, format);
|
||||
+ /* Temporary BDRV_O_RDWR */
|
||||
+ bdrv_open2(bs, media_filename[i], BDRV_O_RDWR, format);
|
||||
#ifdef CONFIG_STUBDOM
|
||||
{
|
||||
char *buf, *backend, *params_path, *params;
|
||||
@@ -510,7 +511,8 @@ void xenstore_parse_domain_config(int hv
|
||||
}
|
||||
|
||||
for (i = 0; i < num; i++) {
|
||||
- format = NULL; /* don't know what the format is yet */
|
||||
+ flags = 0;
|
||||
+ format = NULL; /* don't know what the format is yet */
|
||||
/* read the backend path */
|
||||
xenstore_get_backend_path(&bpath, "vbd", danger_path, hvm_domid, e_danger[i]);
|
||||
if (bpath == NULL)
|
||||
@@ -596,6 +598,17 @@ void xenstore_parse_domain_config(int hv
|
||||
format = &bdrv_raw;
|
||||
}
|
||||
|
||||
+ /* read the mode of the device */
|
||||
+ if (pasprintf(&buf, "%s/mode", bpath) == -1)
|
||||
+ continue;
|
||||
+ free(mode);
|
||||
+ mode = xs_read(xsh, XBT_NULL, buf, &len);
|
||||
+
|
||||
+ if (!strcmp(mode, "r") || !strcmp(mode, "ro"))
|
||||
+ flags |= BDRV_O_RDONLY;
|
||||
+ if (!strcmp(mode, "w") || !strcmp(mode, "rw"))
|
||||
+ flags |= BDRV_O_RDWR;
|
||||
+
|
||||
#if 0
|
||||
/* Phantom VBDs are disabled because the use of paths
|
||||
* from guest-controlled areas in xenstore is unsafe.
|
||||
@@ -663,7 +676,7 @@ void xenstore_parse_domain_config(int hv
|
||||
#ifdef CONFIG_STUBDOM
|
||||
if (pasprintf(&danger_buf, "%s/device/vbd/%s", danger_path, e_danger[i]) == -1)
|
||||
continue;
|
||||
- if (bdrv_open2(bs, danger_buf, BDRV_O_CACHE_WB /* snapshot and write-back */, &bdrv_raw) == 0) {
|
||||
+ if (bdrv_open2(bs, danger_buf, flags|BDRV_O_CACHE_WB /* snapshot and write-back */, &bdrv_raw) == 0) {
|
||||
if (pasprintf(&buf, "%s/params", bpath) == -1)
|
||||
continue;
|
||||
free(params);
|
Reference in New Issue
Block a user