- if (AsciiStrCmp (FileNameAscii, File->HwDescription.Footer.Filename)) {\r
- // Check a file with that filename doesn't already exist\r
- if (BootMonGetFileFromAsciiFileName (\r
- File->Instance,\r
- File->HwDescription.Footer.Filename,\r
- &SameFile) != EFI_NOT_FOUND) {\r
- Status = EFI_ACCESS_DENIED;\r
- } else {\r
- AsciiStrCpy (FileNameAscii, File->HwDescription.Footer.Filename);\r
- Status = EFI_SUCCESS;\r
- }\r
+ if (AsciiStrCmp (FileNameAscii, File->HwDescription.Footer.Filename) == 0) {\r
+ // No change to filename.\r
+ Status = EFI_SUCCESS;\r
+ } else if (!(File->OpenMode & EFI_FILE_MODE_WRITE)) {\r
+ // You can only change the filename if you open the file for write.\r
+ Status = EFI_ACCESS_DENIED;\r
+ } else if (BootMonGetFileFromAsciiFileName (\r
+ File->Instance,\r
+ File->HwDescription.Footer.Filename,\r
+ &SameFile) != EFI_NOT_FOUND) {\r
+ // A file with that name already exists.\r
+ Status = EFI_ACCESS_DENIED;\r