Remove support for SUNWNFS file system
This commit is contained in:
parent
b2867a68b9
commit
733af66c6e
|
@ -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 ());
|
||||
|
||||
if (pc.isgood_inode (pc.get_ino ()))
|
||||
ino = pc.get_ino ();
|
||||
}
|
||||
|
||||
/* 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 ();
|
||||
|
||||
out:
|
||||
syscall_printf ("%d = fhandler_disk_file::open(%S, %y)", res,
|
||||
pc.get_nt_native_path (), flags);
|
||||
return res;
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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 },
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 ();}
|
||||
|
|
Loading…
Reference in New Issue