Fix a migration bug in Fat driver as the value of lock has been changed from EDK...
authorqhuang8 <qhuang8@efd2e655-3735-4b16-a529-16bfa2dd702b>
Thu, 18 Mar 2010 01:56:21 +0000 (01:56 +0000)
committerqhuang8 <qhuang8@efd2e655-3735-4b16-a529-16bfa2dd702b>
Thu, 18 Mar 2010 01:56:21 +0000 (01:56 +0000)
git-svn-id: https://edk2-fatdriver2.svn.sourceforge.net/svnroot/edk2-fatdriver2/trunk@52 efd2e655-3735-4b16-a529-16bfa2dd702b

FatPkg/EnhancedFatDxe/Fat.h
FatPkg/EnhancedFatDxe/Init.c
FatPkg/EnhancedFatDxe/Misc.c

index 5be2b26..03e9145 100644 (file)
@@ -1,6 +1,6 @@
 /*++\r
 \r
-Copyright (c) 2005 - 2009, Intel Corporation\r
+Copyright (c) 2005 - 2010, Intel Corporation\r
 All rights reserved. This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the Software\r
 License Agreement which accompanies this distribution.\r
@@ -779,8 +779,8 @@ FatReleaseLock (
   VOID\r
   );\r
 \r
-BOOLEAN\r
-FatIsLocked (\r
+EFI_STATUS\r
+FatAcquireLockOrFail (\r
   VOID\r
   );\r
 \r
index 7ad4005..575677c 100644 (file)
@@ -1,6 +1,6 @@
 /*++\r
 \r
-Copyright (c) 2005 - 2007, Intel Corporation\r
+Copyright (c) 2005 - 2010, Intel Corporation\r
 All rights reserved. This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the Software\r
 License Agreement which accompanies this distribution.\r
@@ -60,8 +60,8 @@ Returns:
   // Acquire the lock.\r
   // If caller has already acquired the lock, cannot lock it again.\r
   //\r
-  if (!FatIsLocked ()) {\r
-    FatAcquireLock ();\r
+  Status = FatAcquireLockOrFail ();\r
+  if (!EFI_ERROR (Status)) {\r
     LockedByMe = TRUE;\r
   }\r
   //\r
@@ -176,9 +176,9 @@ Returns:
   // means we are in the process of some Fat operation),\r
   // we can not acquire again.\r
   //\r
-  if (!FatIsLocked ()) {\r
+  Status = FatAcquireLockOrFail ();\r
+  if (!EFI_ERROR (Status)) {\r
     LockedByMe = TRUE;\r
-    FatAcquireLock ();\r
   }\r
   //\r
   // The volume is still being used. Hence, set error flag for all OFiles still in\r
index 6a91cfb..63008e5 100644 (file)
@@ -1,6 +1,6 @@
 /*++\r
 \r
-Copyright (c) 2005, Intel Corporation\r
+Copyright (c) 2005 - 2010, Intel Corporation\r
 All rights reserved. This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the Software\r
 License Agreement which accompanies this distribution.\r
@@ -136,15 +136,17 @@ Returns:
   EfiAcquireLock (&FatFsLock);\r
 }\r
 \r
-BOOLEAN\r
-FatIsLocked (\r
+EFI_STATUS\r
+FatAcquireLockOrFail (\r
   VOID\r
   )\r
 /*++\r
 \r
 Routine Description:\r
 \r
-  Get the locking status of the volume.\r
+  Lock the volume.\r
+  If the lock is already in the acquired state, then EFI_ACCESS_DENIED is returned.\r
+  Otherwise, EFI_SUCCESS is returned.\r
 \r
 Arguments:\r
 \r
@@ -152,12 +154,12 @@ Arguments:
 \r
 Returns:\r
 \r
-  TRUE                  - The volume is locked.\r
-  FALSE                 - The volume is not locked.\r
+  EFI_SUCCESS           - The volume is locked.\r
+  EFI_ACCESS_DENIED     - The volume could not be locked because it is already locked.\r
 \r
 --*/\r
 {\r
-  return (BOOLEAN) (FatFsLock.Lock);\r
+  return EfiAcquireLockOrFail (&FatFsLock);\r
 }\r
 \r
 VOID\r