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,6 +733,10 @@ 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);
/* 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; goto out;
} }