Drop has_broken_udf flag
This commit is contained in:
parent
222e412f8d
commit
e931b1a0eb
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue