From 975a85f42c985b87533fd7cbfcdfe65ca243a94e Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 7 Jul 2010 07:53:22 +0000 Subject: [PATCH] * syscalls.cc (unlink_nt): Disable try_to_bin for netapp drives. Explain why. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/syscalls.cc | 8 ++++++-- 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 + + * syscalls.cc (unlink_nt): Disable try_to_bin for netapp drives. + Explain why. + 2010-07-05 Corinna Vinschen 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,