diff --git a/winsup/cygwin/mount.cc b/winsup/cygwin/mount.cc index 376fca810..c890b0237 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 f926ff6ee..77117fca9 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 0aea24c14..e3da924c8 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 b4989b6e8..529e7d724 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)