On 3/6/23 17:52, Richard W.M. Jones wrote:
diff --git a/convert/convert_windows.ml b/convert/convert_windows.ml
index 9d8d271d05..f36b486359 100644
--- a/convert/convert_windows.ml
+++ b/convert/convert_windows.ml
@@ -38,7 +38,7 @@ module G = Guestfs
* time the Windows VM is booted on KVM.
*)
-let convert (g : G.guestfs) _ inspect i_firmware _ static_ips =
+let convert (g : G.guestfs) _ inspect i_firmware block_driver _ static_ips =
(*----------------------------------------------------------------------*)
(* Inspect the Windows guest. *)
@@ -47,6 +47,16 @@ let convert (g : G.guestfs) _ inspect i_firmware _ static_ips =
*)
let virtio_win =
Inject_virtio_win.from_environment g inspect.i_root Config.datadir in
+ (match block_driver with
+ | Virtio_blk -> () (* the default, no need to do anything *)
+(*
+ | Virtio_scsi ->
+ let drivers = Inject_virtio_win.get_block_driver_priority virtio_win in
+ let drivers = "vioscsi" :: drivers in
+ Inject_virtio_win.set_block_driver_priority virtio_win drivers
+*)
+ | IDE -> assert false (* not possible - but maybe ...? *)
+ );
(* If the Windows guest appears to be using group policy.
*
So ["virtio_blk"; "vrtioblk"; "viostor"] in
"common/mlcustomize/inject_virtio_win.ml" would be replaced with a
reference cell, and get_block_driver_priority /
set_block_driver_priority would manipulate that.
This looks OK to me.
That said, I'd prefer that this patch be split up a bit (by Andrey).
Patch#1 could introduce the new field and make sure it is passed around
(incl. setting the default virtio-blk value); that's purely boilerplate,
so the patch would be well-focused. Patch #2 could glue the new field to
the new Inject_virtio_win APIs, in "convert_windows.ml". Patch#3 could
implement the command line changes and update the documentation.
Laszlo