EFI_PARTITION_INFO_PROTOCOL PartitionInfo;\r
EFI_LBA StartingLBA;\r
EFI_LBA EndingLBA;\r
+ BOOLEAN ChildCreated;\r
\r
Media = BlockIo->Media;\r
+ ChildCreated = FALSE;\r
\r
//\r
// Check if UDF logical block size is multiple of underlying device block size\r
return EFI_NOT_FOUND;\r
}\r
\r
+ //\r
+ // Detect El Torito feature first.\r
+ // And always continue to search for UDF.\r
+ //\r
+ Status = PartitionInstallElToritoChildHandles (\r
+ This,\r
+ Handle,\r
+ DiskIo,\r
+ DiskIo2,\r
+ BlockIo,\r
+ BlockIo2,\r
+ DevicePath\r
+ );\r
+ if (!EFI_ERROR (Status)) {\r
+ DEBUG ((DEBUG_INFO, "PartitionDxe: El Torito standard found on handle 0x%p.\n", Handle));\r
+ ChildCreated = TRUE;\r
+ }\r
+\r
//\r
// Search for an UDF file system on block device\r
//\r
Status = FindUdfFileSystem (BlockIo, DiskIo, &StartingLBA, &EndingLBA);\r
if (EFI_ERROR (Status)) {\r
- return EFI_NOT_FOUND;\r
+ return (ChildCreated ? EFI_SUCCESS : EFI_NOT_FOUND);\r
}\r
\r
//\r
EndingLBA,\r
Media->BlockSize\r
);\r
+ if (EFI_ERROR (Status)) {\r
+ return (ChildCreated ? EFI_SUCCESS : Status);\r
+ }\r
\r
- return Status;\r
+ return EFI_SUCCESS;\r
}\r