mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
libxl: qemu_disk_scsi_drive_string: Break out common parts of disk config
The generated configurations are identical apart from, in some cases,
reordering of the id=%s element. So, overall, no functional change.
This is part of 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>
master commit: 724e5aa31b
master date: 2018-06-28 09:04:55 +0200
This commit is contained in:
1 parent
5fd28d27d3
commit
500d567b08
1 file changed
+7
-6
@@ -773,6 +773,7 @@ static char *qemu_disk_scsi_drive_string(libxl__gc *gc, const char *target_path,
|
||||
int colo_mode)
|
||||
{
|
||||
char *drive = NULL;
|
||||
char *common = GCSPRINTF("cache=writeback");
|
||||
const char *exportname = disk->colo_export;
|
||||
const char *active_disk = disk->active_disk;
|
||||
const char *hidden_disk = disk->hidden_disk;
|
||||
@@ -780,8 +781,8 @@ static char *qemu_disk_scsi_drive_string(libxl__gc *gc, const char *target_path,
|
||||
switch (colo_mode) {
|
||||
case LIBXL__COLO_NONE:
|
||||
drive = libxl__sprintf
|
||||
(gc, "file=%s,if=scsi,bus=0,unit=%d,format=%s,cache=writeback",
|
||||
target_path, unit, format);
|
||||
(gc, "%s,file=%s,if=scsi,bus=0,unit=%d,format=%s",
|
||||
common, target_path, unit, format);
|
||||
break;
|
||||
case LIBXL__COLO_PRIMARY:
|
||||
/*
|
||||
@@ -794,13 +795,13 @@ static char *qemu_disk_scsi_drive_string(libxl__gc *gc, const char *target_path,
|
||||
* vote-threshold=1
|
||||
*/
|
||||
drive = GCSPRINTF(
|
||||
"if=scsi,bus=0,unit=%d,cache=writeback,driver=quorum,"
|
||||
"%s,if=scsi,bus=0,unit=%d,,driver=quorum,"
|
||||
"id=%s,"
|
||||
"children.0.file.filename=%s,"
|
||||
"children.0.driver=%s,"
|
||||
"read-pattern=fifo,"
|
||||
"vote-threshold=1",
|
||||
unit, exportname, target_path, format);
|
||||
common, unit, exportname, target_path, format);
|
||||
break;
|
||||
case LIBXL__COLO_SECONDARY:
|
||||
/*
|
||||
@@ -814,14 +815,14 @@ static char *qemu_disk_scsi_drive_string(libxl__gc *gc, const char *target_path,
|
||||
* file.backing.backing=exportname,
|
||||
*/
|
||||
drive = GCSPRINTF(
|
||||
"if=scsi,bus=0,unit=%d,cache=writeback,driver=replication,"
|
||||
"%s,if=scsi,bus=0,unit=%d,driver=replication,"
|
||||
"mode=secondary,"
|
||||
"file.driver=qcow2,"
|
||||
"file.file.filename=%s,"
|
||||
"file.backing.driver=qcow2,"
|
||||
"file.backing.file.filename=%s,"
|
||||
"file.backing.backing=%s",
|
||||
unit, active_disk, hidden_disk, exportname);
|
||||
common, unit, active_disk, hidden_disk, exportname);
|
||||
break;
|
||||
default:
|
||||
abort();
|
||||
|
||||