]> xenbits.xensource.com Git - pvdrivers/win/xenvbd.git/commitdiff
Take notice of 'discard-enable' in xenstore
authorAndreas Kinzler <ml-ak@posteo.de>
Mon, 20 Feb 2017 14:09:04 +0000 (14:09 +0000)
committerPaul Durrant <paul.durrant@citrix.com>
Mon, 20 Feb 2017 14:12:14 +0000 (14:12 +0000)
When enabling discard in the frontend, both the 'feature-discard' and
'discard-enable' flags should be taken into account.

Signed-off-by: Andreas Kinzler <ml-ak@posteo.de>
[Added commit comment]
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
src/xenvbd/frontend.c

index e65a3b09fc790aa2feb29fe0793c6b4cd9909590..83a0f5e14e4889a2d9517d87510da737968b32cf 100644 (file)
@@ -833,6 +833,9 @@ FrontendReadDiskInfo(
     )
 {
     BOOLEAN Changed = FALSE;
+    BOOLEAN Discard;
+    BOOLEAN DiscardFeature = FALSE;
+    BOOLEAN DiscardEnable = TRUE;
 
     Changed |= FrontendReadFeature(Frontend,
                                    "feature-barrier",
@@ -840,9 +843,17 @@ FrontendReadDiskInfo(
     Changed |= FrontendReadFeature(Frontend,
                                    "feature-flush-cache",
                                    &Frontend->DiskInfo.FlushCache);
-    Changed |= FrontendReadFeature(Frontend,
-                                   "feature-discard",
-                                   &Frontend->DiskInfo.Discard);
+
+    // discard related
+    FrontendReadFeature(Frontend,
+                        "feature-discard",
+                        &DiscardFeature);
+    FrontendReadFeature(Frontend,
+                        "discard-enable",
+                        &DiscardEnable);
+    Discard = DiscardFeature && DiscardEnable;
+    Changed |= (Discard != Frontend->DiskInfo.Discard);
+    Frontend->DiskInfo.Discard = Discard;
     Changed |= FrontendReadFeature(Frontend,
                                    "discard-secure",
                                    &Frontend->DiskInfo.DiscardSecure);