diff options
-rw-r--r-- | configure.ac | 12 | ||||
-rwxr-xr-x | src/generator.ml | 4 | ||||
-rw-r--r-- | src/guestfs.c | 4 |
3 files changed, 16 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac index 03f93886..ae0d81e0 100644 --- a/configure.ac +++ b/configure.ac @@ -102,6 +102,18 @@ the --with-qemu option. AC_MSG_RESULT([yes]) fi +dnl Set drive interface used by the guestfs_add_drive{,_ro} calls +dnl ('-drive ...,if=...' option to qemu). +dnl +dnl NB. We will change the default in future to virtio, but at the +dnl moment this causes a performance problem, RHBZ#509383. +AC_ARG_WITH([drive-if], + [AS_HELP_STRING([--with-drive-if], + [set default driver (ide|scsi|virtio) @<:@default=ide@:>@])], + [], + [with_drive_if=ide]) +AC_DEFINE_UNQUOTED([DRIVE_IF],["$with_drive_if"],[Default drive interface.]) + dnl Check for febootstrap etc. AC_CHECK_PROG([FEBOOTSTRAP], [febootstrap],[febootstrap],[no]) diff --git a/src/generator.ml b/src/generator.ml index f41413e8..239f021f 100755 --- a/src/generator.ml +++ b/src/generator.ml @@ -378,7 +378,7 @@ just want to read the image or write access if you want to modify the image). This is equivalent to the qemu parameter -C<-drive file=filename,cache=off,if=virtio>. +C<-drive file=filename,cache=off,if=...>. Note that this call checks for the existence of C<filename>. This stops you from specifying other types of drive which are supported @@ -412,7 +412,7 @@ handle is closed. We don't currently have any method to enable changes to be committed, although qemu can support this. This is equivalent to the qemu parameter -C<-drive file=filename,snapshot=on,if=virtio>. +C<-drive file=filename,snapshot=on,if=...>. Note that this call checks for the existence of C<filename>. This stops you from specifying other types of drive which are supported diff --git a/src/guestfs.c b/src/guestfs.c index 9cdb2dde..c3bce0b8 100644 --- a/src/guestfs.c +++ b/src/guestfs.c @@ -708,7 +708,7 @@ guestfs_add_drive (guestfs_h *g, const char *filename) } /* cache=off improves reliability in the event of a host crash. */ - snprintf (buf, len, "file=%s,cache=off,if=virtio", filename); + snprintf (buf, len, "file=%s,cache=off,if=%s", filename, DRIVE_IF); return guestfs_config (g, "-drive", buf); } @@ -729,7 +729,7 @@ guestfs_add_drive_ro (guestfs_h *g, const char *filename) return -1; } - snprintf (buf, len, "file=%s,snapshot=on,if=virtio", filename); + snprintf (buf, len, "file=%s,snapshot=on,if=%s", filename, DRIVE_IF); return guestfs_config (g, "-drive", buf); } |