]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Disk/UdfDxe/File.c
MdeModulePkg/UDF: Fix creation of UDF logical partition
[mirror_edk2.git] / MdeModulePkg / Universal / Disk / UdfDxe / File.c
index 625f2c5637d4b2c974f947fb42b1e4b07feb2dde..6f07bf2066dced6e3836ecfa659b3e984c71f063 100644 (file)
@@ -131,7 +131,6 @@ Error_Alloc_Priv_File_Data:
   CleanupFileInformation (&PrivFsData->Root);\r
 \r
 Error_Find_Root_Dir:\r
-  CleanupVolumeInformation (&PrivFsData->Volume);\r
 \r
 Error_Read_Udf_Volume:\r
 Error_Invalid_Params:\r
@@ -429,7 +428,7 @@ UdfRead (
     }\r
     ASSERT (NewFileEntryData != NULL);\r
 \r
-    if (IS_FE_SYMLINK (NewFileEntryData)) {\r
+    if (FE_ICB_FILE_TYPE (NewFileEntryData) == UdfFileEntrySymlink) {\r
       Status = ResolveSymlink (\r
         BlockIo,\r
         DiskIo,\r
@@ -529,7 +528,6 @@ UdfClose (
   EFI_TPL                     OldTpl;\r
   EFI_STATUS                  Status;\r
   PRIVATE_UDF_FILE_DATA       *PrivFileData;\r
-  PRIVATE_UDF_SIMPLE_FS_DATA  *PrivFsData;\r
 \r
   OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
 \r
@@ -542,8 +540,6 @@ UdfClose (
 \r
   PrivFileData = PRIVATE_UDF_FILE_DATA_FROM_THIS (This);\r
 \r
-  PrivFsData = PRIVATE_UDF_SIMPLE_FS_DATA_FROM_THIS (PrivFileData->SimpleFs);\r
-\r
   if (!PrivFileData->IsRootDirectory) {\r
     CleanupFileInformation (&PrivFileData->File);\r
 \r
@@ -552,10 +548,6 @@ UdfClose (
     }\r
   }\r
 \r
-  if (--PrivFsData->OpenFiles == 0) {\r
-    CleanupVolumeInformation (&PrivFsData->Volume);\r
-  }\r
-\r
   FreePool ((VOID *)PrivFileData);\r
 \r
 Exit:\r
@@ -652,7 +644,7 @@ UdfGetPosition (
   // As per UEFI spec, if the file handle is a directory, then the current file\r
   // position has no meaning and the operation is not supported.\r
   //\r
-  if (IS_FID_DIRECTORY_FILE (&PrivFileData->File.FileIdentifierDesc)) {\r
+  if (IS_FID_DIRECTORY_FILE (PrivFileData->File.FileIdentifierDesc)) {\r
     return  EFI_UNSUPPORTED;\r
   }\r
 \r
@@ -788,7 +780,7 @@ UdfGetInfo (
   } else if (CompareGuid (InformationType, &gEfiFileSystemInfoGuid)) {\r
     String = VolumeLabel;\r
 \r
-    FileSetDesc = PrivFsData->Volume.FileSetDescs[0];\r
+    FileSetDesc = &PrivFsData->Volume.FileSetDesc;\r
 \r
     OstaCompressed = &FileSetDesc->LogicalVolumeIdentifier[0];\r
 \r
@@ -847,7 +839,7 @@ UdfGetInfo (
     FileSystemInfo->Size        = FileSystemInfoLength;\r
     FileSystemInfo->ReadOnly    = TRUE;\r
     FileSystemInfo->BlockSize   =\r
-      LV_BLOCK_SIZE (&PrivFsData->Volume, UDF_DEFAULT_LV_NUM);\r
+      PrivFsData->Volume.LogicalVolDesc.LogicalBlockSize;\r
     FileSystemInfo->VolumeSize  = VolumeSize;\r
     FileSystemInfo->FreeSpace   = FreeSpaceSize;\r
 \r