This is the mail archive of the cygwin-cvs@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[newlib-cygwin] Remove support for SUNWNFS file system


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=733af66c6e969b186b6e83ad0c9ecaf6728582df

commit 733af66c6e969b186b6e83ad0c9ecaf6728582df
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Tue Dec 15 13:56:39 2015 +0100

    Remove support for SUNWNFS file system

Diff:
---
 winsup/cygwin/fhandler_disk_file.cc | 31 ++++++++-----------------------
 winsup/cygwin/globals.cc            |  1 -
 winsup/cygwin/mount.cc              | 11 +++--------
 winsup/cygwin/mount.h               |  4 ----
 winsup/cygwin/path.h                |  1 -
 5 files changed, 11 insertions(+), 37 deletions(-)

diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc
index 0d243c4..6e61ee2 100644
--- a/winsup/cygwin/fhandler_disk_file.cc
+++ b/winsup/cygwin/fhandler_disk_file.cc
@@ -1457,32 +1457,17 @@ fhandler_base::open_fs (int flags, mode_t mode)
   bool new_file = !exists ();
 
   int res = fhandler_base::open (flags | O_DIROPEN, mode);
-  if (!res)
-    goto out;
-
-  /* This is for file systems known for having a buggy CreateFile call
-     which might return a valid HANDLE without having actually opened
-     the file.
-     The only known file system to date is the SUN NFS Solstice Client 3.1
-     which returns a valid handle when trying to open a file in a nonexistent
-     directory. */
-  if (pc.has_buggy_open () && !pc.exists ())
+  if (res)
     {
-      debug_printf ("Buggy open detected.");
-      close_fs ();
-      set_errno (ENOENT);
-      return 0;
-    }
-
-  /* The file info in pc is wrong at this point for newly created files.
-     Refresh it before fetching any file info. */
-  if (new_file)
-    pc.get_finfo (get_io_handle ());
+      /* The file info in pc is wrong at this point for newly created files.
+	 Refresh it before fetching any file info. */
+      if (new_file)
+	pc.get_finfo (get_io_handle ());
 
-  if (pc.isgood_inode (pc.get_ino ()))
-    ino = pc.get_ino ();
+      if (pc.isgood_inode (pc.get_ino ()))
+	ino = pc.get_ino ();
+    }
 
-out:
   syscall_printf ("%d = fhandler_disk_file::open(%S, %y)", res,
 		  pc.get_nt_native_path (), flags);
   return res;
diff --git a/winsup/cygwin/globals.cc b/winsup/cygwin/globals.cc
index 7427756..3430548 100644
--- a/winsup/cygwin/globals.cc
+++ b/winsup/cygwin/globals.cc
@@ -138,7 +138,6 @@ const int __collate_load_error = 0;
      in the reply from the filesystem. */
   extern UNICODE_STRING _RDATA ro_u_prlfs = _ROU (L"PrlSF\0");
   extern UNICODE_STRING _RDATA ro_u_refs = _ROU (L"ReFS");
-  extern UNICODE_STRING _RDATA ro_u_sunwnfs = _ROU (L"SUNWNFS");
   extern UNICODE_STRING _RDATA ro_u_udf = _ROU (L"UDF");
   extern UNICODE_STRING _RDATA ro_u_unixfs = _ROU (L"UNIXFS");
   extern UNICODE_STRING _RDATA ro_u_nwfs = _ROU (L"NWFS");
diff --git a/winsup/cygwin/mount.cc b/winsup/cygwin/mount.cc
index acde67e..376fca8 100644
--- a/winsup/cygwin/mount.cc
+++ b/winsup/cygwin/mount.cc
@@ -393,15 +393,11 @@ fs_info::update (PUNICODE_STRING upath, HANDLE in_vol)
 	  && !is_unixfs (RtlEqualUnicodeString (&fsname, &ro_u_unixfs, FALSE))
 	  /* AFSRDRFsd == Andrew File System.  Doesn't support DOS attributes.
 	     Only native symlinks are supported. */
-	  && !is_afs (RtlEqualUnicodeString (&fsname, &ro_u_afs, FALSE))
+	  && !is_afs (RtlEqualUnicodeString (&fsname, &ro_u_afs, FALSE)))
+	{
 	  /* PrlSF == Parallels Desktop File System.  Has a bug in
 	     FileNetworkOpenInformation, see below. */
-	  && !is_prlfs (RtlEqualUnicodeString (&fsname, &ro_u_prlfs, FALSE)))
-	{
-	  /* Known remote file system with buggy open calls.  Further
-	     explanation in fhandler.cc (fhandler_disk_file::open_fs). */
-	  is_sunwnfs (RtlEqualUnicodeString (&fsname, &ro_u_sunwnfs, FALSE));
-	  has_buggy_open (is_sunwnfs ());
+	  is_prlfs (RtlEqualUnicodeString (&fsname, &ro_u_prlfs, FALSE));
 	}
       if (got_fs ())
 	{
@@ -1573,7 +1569,6 @@ fs_names_t fs_names[] = {
     { "iso9660", true },
     { "udf", true },
     { "csc-cache", false },
-    { "sunwnfs", false },
     { "unixfs", false },
     { "mvfs", false },
     { "cifs", false },
diff --git a/winsup/cygwin/mount.h b/winsup/cygwin/mount.h
index d37b673..0b392ca 100644
--- a/winsup/cygwin/mount.h
+++ b/winsup/cygwin/mount.h
@@ -39,7 +39,6 @@ enum fs_info_type
   cdrom,
   udf,
   csc_cache,
-  sunwnfs,
   unixfs,
   mvfs,
   cifs,
@@ -72,7 +71,6 @@ class fs_info
     unsigned has_acls			: 1;
     unsigned hasgood_inode		: 1;
     unsigned caseinsensitive		: 1;
-    unsigned has_buggy_open		: 1;
     unsigned has_buggy_reopen		: 1;
     unsigned has_buggy_fileid_dirinfo	: 1;
     unsigned has_buggy_basic_info	: 1;
@@ -97,7 +95,6 @@ class fs_info
   IMPLEMENT_STATUS_FLAG (bool, has_acls)
   IMPLEMENT_STATUS_FLAG (bool, hasgood_inode)
   IMPLEMENT_STATUS_FLAG (bool, caseinsensitive)
-  IMPLEMENT_STATUS_FLAG (bool, has_buggy_open)
   IMPLEMENT_STATUS_FLAG (bool, has_buggy_reopen)
   IMPLEMENT_STATUS_FLAG (bool, has_buggy_fileid_dirinfo)
   IMPLEMENT_STATUS_FLAG (bool, has_buggy_basic_info)
@@ -111,7 +108,6 @@ class fs_info
   IMPLEMENT_FS_FLAG (cdrom)
   IMPLEMENT_FS_FLAG (udf)
   IMPLEMENT_FS_FLAG (csc_cache)
-  IMPLEMENT_FS_FLAG (sunwnfs)
   IMPLEMENT_FS_FLAG (unixfs)
   IMPLEMENT_FS_FLAG (mvfs)
   IMPLEMENT_FS_FLAG (cifs)
diff --git a/winsup/cygwin/path.h b/winsup/cygwin/path.h
index 042ba31..1af5d22 100644
--- a/winsup/cygwin/path.h
+++ b/winsup/cygwin/path.h
@@ -168,7 +168,6 @@ class path_conv
   }
   int has_symlinks () const {return path_flags & PATH_HAS_SYMLINKS;}
   int has_dos_filenames_only () const {return path_flags & PATH_DOS;}
-  int has_buggy_open () const {return fs.has_buggy_open ();}
   int has_buggy_reopen () const {return fs.has_buggy_reopen ();}
   int has_buggy_fileid_dirinfo () const {return fs.has_buggy_fileid_dirinfo ();}
   int has_buggy_basic_info () const {return fs.has_buggy_basic_info ();}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]