summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_disk_file.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/fhandler_disk_file.cc')
-rw-r--r--winsup/cygwin/fhandler_disk_file.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc
index 960e0f8ff..48904788e 100644
--- a/winsup/cygwin/fhandler_disk_file.cc
+++ b/winsup/cygwin/fhandler_disk_file.cc
@@ -1281,11 +1281,16 @@ fhandler_disk_file::rmdir ()
&& SetCurrentDirectory (windows_system_directory))
continue;
- /* On 9X ERROR_ACCESS_DENIED is returned
- if you try to remove a non-empty directory. */
+ /* On 9X ERROR_ACCESS_DENIED is returned if you try to remove a
+ non-empty directory. */
if (err == ERROR_ACCESS_DENIED
&& wincap.access_denied_on_delete ())
err = ERROR_DIR_NOT_EMPTY;
+ /* ...and, that's *not* funny, when trying to remove a non-existing
+ directory on a share, which is hosted by a 9x machine, the error
+ code ERROR_INVALID_FUNCTION is returned. */
+ else if (err == ERROR_INVALID_FUNCTION)
+ err = ERROR_FILE_NOT_FOUND;
__seterrno_from_win_error (err);