)\r
{\r
EFI_STATUS Status;\r
- EFI_BLOCK_IO_PROTOCOL *BlockIo;\r
- UINT8 *DataBuffer;\r
- UINTN BlockSize;\r
\r
- Status = EFI_SUCCESS;\r
- BlockIo = Instance->BlockIo;\r
+ Status = EFI_SUCCESS;\r
\r
// Note that a call to this function on a file opened read-only is only\r
// invalid if it actually changes fields, so we don't immediately fail if the\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
-\r
- //\r
- // Update the last block\r
- //\r
- BlockSize = BlockIo->Media->BlockSize;\r
- DataBuffer = AllocatePool (BlockSize);\r
- if (DataBuffer == NULL) {\r
- return EFI_OUT_OF_RESOURCES;\r
- }\r
- Status = BlockIo->ReadBlocks (BlockIo, Instance->Media->MediaId,\r
- File->HwDescription.BlockEnd, BlockSize, DataBuffer);\r
- if (EFI_ERROR (Status)) {\r
- FreePool (DataBuffer);\r
- return Status;\r
- }\r
- CopyMem (DataBuffer + BlockSize - sizeof (File->HwDescription), &File->HwDescription, sizeof (File->HwDescription));\r
- Status = BlockIo->WriteBlocks (BlockIo, Instance->Media->MediaId,\r
- File->HwDescription.BlockEnd, BlockSize, DataBuffer);\r
- FreePool (DataBuffer);\r
}\r
return Status;\r
}\r