Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP1:GA
xen.8389
5b3488a2-libxl-restore-passing-ro-to-qemu-for-S...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 5b3488a2-libxl-restore-passing-ro-to-qemu-for-SCSI-disks.patch of Package xen.8389
# Commit dd64d3c41a2d15139c3a35d22d4cb6b78f4c5c59 # Date 2018-06-28 09:05:06 +0200 # Author Ian Jackson <ian.jackson@eu.citrix.com> # Committer Jan Beulich <jbeulich@suse.com> libxl: restore passing "readonly=" to qemu for SCSI disks A read-only check was introduced for XSA-142, commit ef6cb76026 ("libxl: relax readonly check introduced by XSA-142 fix") added the passing of the extra setting, but commit dab0539568 ("Introduce COLO mode and refactor relevant function") dropped the passing of the setting again, quite likely due to improper re-basing. Restore the readonly= parameter to SCSI disks. For IDE disks this is supposed to be rejected; add an assert. And there is a bare ad-hoc disk drive string in libxl__build_device_model_args_new, which we also update. This is XSA-266. Reported-by: Andrew Reimers <andrew.reimers@orionvm.com> Signed-off-by: Jan Beulich <jbeulich@suse.com> Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> --- a/tools/libxl/libxl_dm.c +++ b/tools/libxl/libxl_dm.c @@ -798,7 +798,8 @@ static char *qemu_disk_scsi_drive_string int colo_mode) { char *drive = NULL; - char *common = GCSPRINTF("cache=writeback"); + char *common = GCSPRINTF("cache=writeback,readonly=%s", + disk->readwrite ? "off" : "on"); const char *exportname = disk->colo_export; const char *active_disk = disk->active_disk; const char *hidden_disk = disk->hidden_disk; @@ -867,6 +868,8 @@ static char *qemu_disk_ide_drive_string( const char *exportname = disk->colo_export; const char *active_disk = disk->active_disk; const char *hidden_disk = disk->hidden_disk; + + assert(disk->readwrite); /* should have been checked earlier */ switch (colo_mode) { case LIBXL__COLO_NONE: @@ -1576,8 +1579,9 @@ static int libxl__build_device_model_arg if (strncmp(disks[i].vdev, "sd", 2) == 0) { if (colo_mode == LIBXL__COLO_SECONDARY) { drive = libxl__sprintf - (gc, "if=none,driver=%s,file=%s,id=%s", - format, target_path, disks[i].colo_export); + (gc, "if=none,driver=%s,file=%s,id=%s,readonly=%s", + format, target_path, disks[i].colo_export, + disks[i].readwrite ? "off" : "on"); flexarray_append(dm_args, "-drive"); flexarray_append(dm_args, drive);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor