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] Drop has_broken_udf flag


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

commit e931b1a0eb33170980558a3768a8091d50227bc7
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Tue Dec 15 15:04:26 2015 +0100

    Drop has_broken_udf flag

Diff:
---
 winsup/cygwin/mount.cc  | 15 +++------------
 winsup/cygwin/path.cc   | 26 --------------------------
 winsup/cygwin/wincap.cc |  7 -------
 winsup/cygwin/wincap.h  |  2 --
 4 files changed, 3 insertions(+), 47 deletions(-)

diff --git a/winsup/cygwin/mount.cc b/winsup/cygwin/mount.cc
index 376fca8..c890b02 100644
--- a/winsup/cygwin/mount.cc
+++ b/winsup/cygwin/mount.cc
@@ -448,18 +448,9 @@ fs_info::update (PUNICODE_STRING upath, HANDLE in_vol)
      except on Samba which handles Windows clients case insensitive.
 
      NFS doesn't set the FILE_CASE_SENSITIVE_SEARCH flag but is case
-     sensitive.
-
-     UDF on NT 5.x is broken (at least) in terms of case sensitivity.
-     The UDF driver reports the FILE_CASE_SENSITIVE_SEARCH capability
-     but:
-     - Opening the root directory for query seems to work at first,
-       but the filenames in the directory listing are mutilated.
-     - When trying to open a file or directory case sensitive, the file
-       appears to be non-existant. */
-  caseinsensitive (((!(flags () & FILE_CASE_SENSITIVE_SEARCH) || is_samba ())
-		    && !is_nfs ())
-		   || (is_udf () && wincap.has_broken_udf ()));
+     sensitive. */
+  caseinsensitive ((!(flags () & FILE_CASE_SENSITIVE_SEARCH) || is_samba ())
+		   && !is_nfs ());
 
   if (!in_vol)
     NtClose (vol);
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index f926ff6..77117fc 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -2703,32 +2703,6 @@ restart:
 	}
       if (status == STATUS_OBJECT_NAME_NOT_FOUND)
 	{
-	  if (ci_flag == 0 && wincap.has_broken_udf ()
-	      && (!fs.inited () || fs.is_udf ()))
-	    {
-	      /* On NT 5.x UDF is broken (at least) in terms of case
-		 sensitivity.  When trying to open a file case sensitive,
-		 the file appears to be non-existant.  Another bug is
-		 described in fs_info::update. */
-	      attr.Attributes = OBJ_CASE_INSENSITIVE;
-	      status = NtOpenFile (&h, READ_CONTROL | FILE_READ_ATTRIBUTES,
-				   &attr, &io, FILE_SHARE_VALID_FLAGS,
-				   FILE_OPEN_REPARSE_POINT
-				   | FILE_OPEN_FOR_BACKUP_INTENT);
-	      debug_printf ("%y = NtOpenFile (broken-UDF, %S)", status, &upath);
-	      attr.Attributes = 0;
-	      if (NT_SUCCESS (status))
-		{
-		  if (!fs.inited ())
-		    fs.update (&upath, h);
-		  if (!fs.is_udf ())
-		    {
-		      NtClose (h);
-		      h = NULL;
-		      status = STATUS_OBJECT_NAME_NOT_FOUND;
-		    }
-		}
-	    }
 	  /* There are filesystems out in the wild (Netapp, NWFS, and others)
 	     which are uncapable of generating pathnames outside the Win32
 	     rules.  That means, filenames on these FSes must not have a
diff --git a/winsup/cygwin/wincap.cc b/winsup/cygwin/wincap.cc
index 0aea24c..e3da924 100644
--- a/winsup/cygwin/wincap.cc
+++ b/winsup/cygwin/wincap.cc
@@ -24,7 +24,6 @@ wincaps wincap_xpsp2 __attribute__((section (".cygwin_dll_common"), shared)) = {
   needs_count_in_si_lpres2:false,
   has_gaa_largeaddress_bug:false,
   has_transactions:false,
-  has_broken_udf:true,
   has_broken_alloc_console:false,
   has_always_all_codepages:false,
   has_localenames:false,
@@ -53,7 +52,6 @@ wincaps wincap_2003 __attribute__((section (".cygwin_dll_common"), shared)) = {
   needs_count_in_si_lpres2:false,
   has_gaa_largeaddress_bug:false,
   has_transactions:false,
-  has_broken_udf:true,
   has_broken_alloc_console:false,
   has_always_all_codepages:false,
   has_localenames:false,
@@ -82,7 +80,6 @@ wincaps wincap_vista __attribute__((section (".cygwin_dll_common"), shared)) = {
   needs_count_in_si_lpres2:true,
   has_gaa_largeaddress_bug:true,
   has_transactions:true,
-  has_broken_udf:false,
   has_broken_alloc_console:false,
   has_always_all_codepages:true,
   has_localenames:true,
@@ -111,7 +108,6 @@ wincaps wincap_7 __attribute__((section (".cygwin_dll_common"), shared)) = {
   needs_count_in_si_lpres2:false,
   has_gaa_largeaddress_bug:true,
   has_transactions:true,
-  has_broken_udf:false,
   has_broken_alloc_console:true,
   has_always_all_codepages:true,
   has_localenames:true,
@@ -140,7 +136,6 @@ wincaps wincap_8 __attribute__((section (".cygwin_dll_common"), shared)) = {
   needs_count_in_si_lpres2:false,
   has_gaa_largeaddress_bug:false,
   has_transactions:true,
-  has_broken_udf:false,
   has_broken_alloc_console:true,
   has_always_all_codepages:true,
   has_localenames:true,
@@ -169,7 +164,6 @@ wincaps wincap_10 __attribute__((section (".cygwin_dll_common"), shared)) = {
   needs_count_in_si_lpres2:false,
   has_gaa_largeaddress_bug:false,
   has_transactions:true,
-  has_broken_udf:false,
   has_broken_alloc_console:true,
   has_always_all_codepages:true,
   has_localenames:true,
@@ -198,7 +192,6 @@ wincaps wincap_10_1511 __attribute__((section (".cygwin_dll_common"), shared)) =
   needs_count_in_si_lpres2:false,
   has_gaa_largeaddress_bug:false,
   has_transactions:true,
-  has_broken_udf:false,
   has_broken_alloc_console:true,
   has_always_all_codepages:true,
   has_localenames:true,
diff --git a/winsup/cygwin/wincap.h b/winsup/cygwin/wincap.h
index b4989b6..529e7d7 100644
--- a/winsup/cygwin/wincap.h
+++ b/winsup/cygwin/wincap.h
@@ -17,7 +17,6 @@ struct wincaps
   unsigned needs_count_in_si_lpres2			: 1;
   unsigned has_gaa_largeaddress_bug			: 1;
   unsigned has_transactions				: 1;
-  unsigned has_broken_udf				: 1;
   unsigned has_broken_alloc_console			: 1;
   unsigned has_always_all_codepages			: 1;
   unsigned has_localenames				: 1;
@@ -71,7 +70,6 @@ public:
   bool	IMPLEMENT (needs_count_in_si_lpres2)
   bool	IMPLEMENT (has_gaa_largeaddress_bug)
   bool	IMPLEMENT (has_transactions)
-  bool	IMPLEMENT (has_broken_udf)
   bool	IMPLEMENT (has_broken_alloc_console)
   bool	IMPLEMENT (has_always_all_codepages)
   bool	IMPLEMENT (has_localenames)


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