]> xenbits.xensource.com Git - pvdrivers/win/xenvbd.git/commitdiff
Take notice of 'discard-enable' in xenstore 8.2.0 8.2.0-rc4
authorAndreas Kinzler <ml-ak@posteo.de>
Mon, 20 Feb 2017 14:09:04 +0000 (14:09 +0000)
committerPaul Durrant <paul.durrant@citrix.com>
Tue, 21 Feb 2017 15:31:03 +0000 (15:31 +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 c2ed0b5e473807710df78f39403d4e498300bf89..227b93b9bd8d9faf44ac574b497e3562a153bca3 100644 (file)
@@ -836,6 +836,9 @@ FrontendReadDiskInfo(
     )
 {
     BOOLEAN Changed = FALSE;
+    BOOLEAN Discard;
+    BOOLEAN DiscardFeature = FALSE;
+    BOOLEAN DiscardEnable = TRUE;
 
     Changed |= FrontendReadFeature(Frontend,
                                    "feature-barrier",
@@ -843,9 +846,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);