File virtinst-set-cache-mode-unsafe-for-install.patch of Package virt-manager.2133

Set cache mode for target installation disk to unsafe for better
performance.
Index: virt-manager-1.2.1/virtinst/guest.py
===================================================================
--- virt-manager-1.2.1.orig/virtinst/guest.py
+++ virt-manager-1.2.1/virtinst/guest.py
@@ -53,6 +53,7 @@ from .osxml import OSXML
 from .pm import PM
 from .seclabel import Seclabel
 from .xmlbuilder import XMLBuilder, XMLProperty, XMLChildProperty
+from .devicedisk import VirtualDisk
 
 
 class Guest(XMLBuilder):
@@ -354,6 +355,17 @@ class Guest(XMLBuilder):
 
         self._set_osxml_defaults()
 
+        # At install time set the target disk to 'unsafe' for
+        # better performance if the target is not a block device
+        saved_cache = "None"
+        if install:
+            disk_devices = self.get_devices("disk")
+            if disk_devices:
+                target_disk = self.get_devices("disk")[0]
+                saved_cache = target_disk.driver_cache
+                if target_disk.type != VirtualDisk.TYPE_BLOCK:
+                    target_disk.driver_cache = VirtualDisk.CACHE_MODE_UNSAFE
+
         self.bootloader = None
         if (not install and
             self.os.is_xenpv() and
@@ -372,7 +384,10 @@ class Guest(XMLBuilder):
                 self.bootloader = "/usr/bin/pygrub"
                 self.os.clear()
 
-        return self.get_xml_config()
+        xml_config = self.get_xml_config()
+        if install and saved_cache != "None":
+            target_disk.driver_cache = saved_cache
+        return xml_config
 
 
     ##############
openSUSE Build Service is sponsored by