Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/fhandler_disk_file.cc31
-rw-r--r--winsup/cygwin/globals.cc1
-rw-r--r--winsup/cygwin/mount.cc11
-rw-r--r--winsup/cygwin/mount.h4
-rw-r--r--winsup/cygwin/path.h1
5 files changed, 11 insertions, 37 deletions
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc
index 0d243c411..6e61ee2b8 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 742775684..34305485e 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 acde67e5b..376fca810 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 d37b673e6..0b392ca85 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 042ba312d..1af5d2293 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 ();}