Cygwin: unlink: allow fallback from POSIX to default method

Trying to delete in-use executables and DLLs using
FILE_DISPOSITION_POSIX_SEMANTICS returns STATUS_CANNOT_DELETE.
Fall back to the former method if that error occurs to allow
unlinking these files.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2019-02-06 21:17:35 +01:00
parent 5628399c84
commit 9fa22dba55
1 changed files with 5 additions and 1 deletions

View File

@ -733,7 +733,11 @@ unlink_nt (path_conv &pc)
if (pc.file_attributes () & FILE_ATTRIBUTE_READONLY) if (pc.file_attributes () & FILE_ATTRIBUTE_READONLY)
NtSetAttributesFile (fh, pc.file_attributes ()); NtSetAttributesFile (fh, pc.file_attributes ());
NtClose (fh); NtClose (fh);
goto out; /* Trying to delete in-use executables and DLLs using
FILE_DISPOSITION_POSIX_SEMANTICS returns STATUS_CANNOT_DELETE.
Fall back to the default method. */
if (status != STATUS_CANNOT_DELETE)
goto out;
} }
/* If the R/O attribute is set, we have to open the file with /* If the R/O attribute is set, we have to open the file with