Index: /trunk/src/VBox/Devices/Storage/DrvBlock.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DrvBlock.cpp	(revision 29340)
+++ /trunk/src/VBox/Devices/Storage/DrvBlock.cpp	(revision 29341)
@@ -85,4 +85,6 @@
     /** HACK: Disable flushes for this drive. */
     bool                    fIgnoreFlush;
+    /** Disable async flushes for this drive. */
+    bool                    fIgnoreFlushAsync;
 #endif /* VBOX_IGNORE_FLUSH */
     /** Pointer to the media driver below us.
@@ -338,5 +340,5 @@
 
 #ifdef VBOX_IGNORE_FLUSH
-    if (pThis->fIgnoreFlush)
+    if (pThis->fIgnoreFlushAsync)
         return VINF_VD_ASYNC_IO_FINISHED;
 #endif /* VBOX_IGNORE_FLUSH */
@@ -752,5 +754,5 @@
      */
 #if defined(VBOX_PERIODIC_FLUSH) || defined(VBOX_IGNORE_FLUSH)
-    if (!CFGMR3AreValuesValid(pCfg, "Type\0Locked\0BIOSVisible\0AttachFailError\0Cylinders\0Heads\0Sectors\0Mountable\0FlushInterval\0IgnoreFlush\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Type\0Locked\0BIOSVisible\0AttachFailError\0Cylinders\0Heads\0Sectors\0Mountable\0FlushInterval\0IgnoreFlush\0IgnoreFlushAsync\0"))
 #else /* !(VBOX_PERIODIC_FLUSH || VBOX_IGNORE_FLUSH) */
     if (!CFGMR3AreValuesValid(pCfg, "Type\0Locked\0BIOSVisible\0AttachFailError\0Cylinders\0Heads\0Sectors\0Mountable\0"))
@@ -912,4 +914,13 @@
     else
         LogRel(("DrvBlock: Flushes will be passed to the disk\n"));
+
+    rc = CFGMR3QueryBoolDef(pCfg, "IgnoreFlushAsync", &pThis->fIgnoreFlushAsync, false);
+    if (RT_FAILURE(rc))
+        return PDMDRV_SET_ERROR(pDrvIns, rc, N_("Failed to query \"IgnoreFlushAsync\" from the config"));
+
+    if (pThis->fIgnoreFlushAsync)
+        LogRel(("DrvBlock: Async flushes will be ignored\n"));
+    else
+        LogRel(("DrvBlock: Async flushes will be passed to the disk\n"));
 #endif /* VBOX_IGNORE_FLUSH */
 
