int colo_mode, const char **id_ptr)
{
char *drive = NULL;
- char *common = GCSPRINTF("if=none,cache=writeback");
+ char *common = GCSPRINTF("if=none,readonly=%s,cache=writeback",
+ disk->readwrite ? "off" : "on");
const char *exportname = disk->colo_export;
const char *active_disk = disk->active_disk;
const char *hidden_disk = disk->hidden_disk;
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:
drive = GCSPRINTF
const char *drive_id;
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);