summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/syscalls.cc8
2 files changed, 11 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 2d9a77c7c..732b5c05e 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2010-07-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (unlink_nt): Disable try_to_bin for netapp drives.
+ Explain why.
+
2010-07-05 Corinna Vinschen <corinna@vinschen.de>
Align seekdir and telldir API to POSIX definition.
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 8ba0af29d..ac1fea0d2 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -554,8 +554,12 @@ unlink_nt (path_conv &pc)
NFS implements its own mechanism to remove in-use files which
looks quite similar to what we do in try_to_bin for remote files.
- That's why we don't call try_to_bin on NFS. */
- if (!pc.fs_is_nfs ())
+ That's why we don't call try_to_bin on NFS.
+
+ Netapp filesystems don't understand the "move and delete" method
+ at all and have all kinds of weird effects. Just setting the delete
+ dispositon usually works fine, though. */
+ if (!pc.fs_is_nfs () && !pc.fs_is_netapp ())
bin_stat = move_to_bin;
if (!pc.isdir () || pc.isremote ())
status = NtOpenFile (&fh, access, &attr, &io,