]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteDxe/FtwLite.c
Enhance FtwReclaimWorkSpace() so that it can be called when the working space header...
[mirror_edk2.git] / MdeModulePkg / Universal / FirmwareVolume / FaultTolerantWriteDxe / FtwLite.c
index 264ef4ba5c3a33d14f8710bf54f1021dba19375a..fd974d5d700c17033248cce0d8da1d3823d1c85a 100644 (file)
@@ -119,7 +119,7 @@ FtwLiteWrite (
   // Check if there is enough free space for allocate a record\r
   //\r
   if ((MyOffset + WRITE_TOTAL_SIZE) > FtwLiteDevice->FtwWorkSpaceSize) {\r
-    Status = FtwReclaimWorkSpace (FtwLiteDevice);\r
+    Status = FtwReclaimWorkSpace (FtwLiteDevice, TRUE);\r
     if (EFI_ERROR (Status)) {\r
       DEBUG ((EFI_D_ERROR, "FtwLite: Reclaim work space - %r", Status));\r
       return EFI_ABORTED;\r
@@ -827,16 +827,10 @@ InitializeFtwLite (
         );\r
       InitWorkSpaceHeader (FtwLiteDevice->FtwWorkSpaceHeader);\r
       //\r
-      // Write to work space on the working block\r
+      // Initialize the work space\r
       //\r
-      Length = FtwLiteDevice->FtwWorkSpaceSize;\r
-      Status = FtwLiteDevice->FtwFvBlock->Write (\r
-                                            FtwLiteDevice->FtwFvBlock,\r
-                                            FtwLiteDevice->FtwWorkSpaceLba,\r
-                                            FtwLiteDevice->FtwWorkSpaceBase,\r
-                                            &Length,\r
-                                            FtwLiteDevice->FtwWorkSpace\r
-                                            );\r
+      Status = FtwReclaimWorkSpace (FtwLiteDevice, FALSE);\r
+\r
       if (EFI_ERROR (Status)) {\r
         return EFI_ABORTED;\r
       }\r
@@ -897,7 +891,7 @@ InitializeFtwLite (
         FtwLiteDevice->FtwWorkSpaceSize - Offset\r
         )) {\r
     DEBUG ((EFI_D_FTW_LITE, "FtwLite: Workspace is dirty, call reclaim...\n"));\r
-    Status = FtwReclaimWorkSpace (FtwLiteDevice);\r
+    Status = FtwReclaimWorkSpace (FtwLiteDevice, TRUE);\r
     if (EFI_ERROR (Status)) {\r
       DEBUG ((EFI_D_FTW_LITE, "FtwLite: Workspace reclaim - %r\n", Status));\r
       return EFI_ABORTED;\r