* mount.h (enum fs_info_type): Add prlfs (Parallels Desktop FS).
(class fs_info): Add has_broken_fnoi flag. Implement prlfs FS flag.
* mount.cc (fs_info::update): Handle PrlFS. Fill new has_broken_fnoi
flag with life.
(fs_names): Add prlfs.
* globals.cc (ro_u_prlfs): Define.
* path.h (path_conv::has_broken_fnoi): New method.
* path.cc (symlink_info::check): Call file_get_fnoi utilizing new
has_broken_fnoi filesystem flag.
* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Ditto.
* new-features.xml (ov-new2.3): Document Parallels Desktop FS support.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
+2015-11-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * mount.h (enum fs_info_type): Add prlfs (Parallels Desktop FS).
+ (class fs_info): Add has_broken_fnoi flag. Implement prlfs FS flag.
+ * mount.cc (fs_info::update): Handle PrlFS. Fill new has_broken_fnoi
+ flag with life.
+ (fs_names): Add prlfs.
+ * globals.cc (ro_u_prlfs): Define.
+ * path.h (path_conv::has_broken_fnoi): New method.
+ * path.cc (symlink_info::check): Call file_get_fnoi utilizing new
+ has_broken_fnoi filesystem flag.
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Ditto.
+
2015-10-30 Corinna Vinschen <corinna@vinschen.de>
* nlsfuncs.cc (__get_lcid_from_locale): Handle LocaleNameToLCID
on the information stored in pc.fnoi. So we overwrite them here. */
if (get_io_handle ())
{
- status = file_get_fnoi (h, pc.fs_is_netapp (), pc.fnoi ());
+ status = file_get_fnoi (h, pc.has_broken_fnoi (), pc.fnoi ());
if (!NT_SUCCESS (status))
{
debug_printf ("%y = NtQueryInformationFile(%S, "
extern UNICODE_STRING _RDATA ro_u_mvfs = _ROU (L"MVFS");
extern UNICODE_STRING _RDATA ro_u_nfs = _ROU (L"NFS");
extern UNICODE_STRING _RDATA ro_u_ntfs = _ROU (L"NTFS");
+ extern UNICODE_STRING _RDATA ro_u_prlfs = _ROU (L"PrlSF"); /* No typo! */
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");
/* mount.cc: mount handling.
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Red Hat, Inc.
+ 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Red Hat, Inc.
This file is part of Cygwin.
&& !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))
+ && !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). */
only support this if the filename is non-null and the handle is
the handle to a directory. NcFsd IR10 is supposed to be ok. */
has_buggy_reopen (is_netapp () || is_nwfs ());
+ /* Netapp and Parallels Desktop FS have problems with the
+ FileNetworkOpenInformation info class. Netapp doesn't
+ implement it at all, Parallels always returns a size of 0. */
+ has_broken_fnoi (is_netapp () || is_prlfs ());
}
}
if (!got_fs ()
{ "nwfs", false },
{ "ncfsd", false },
{ "afs", false },
+ { "prlfs", false },
{ NULL, false }
};
/* mount.h: mount definitions.
Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
- 2008, 2009, 2010, 2011, 2012, 2013, 2014 Red Hat, Inc.
+ 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Red Hat, Inc.
This file is part of Cygwin.
nwfs,
ncfsd,
afs,
+ prlfs,
/* Always last. */
max_fs_type
};
unsigned has_buggy_fileid_dirinfo : 1;
unsigned has_buggy_basic_info : 1;
unsigned has_dos_filenames_only : 1;
+ unsigned has_broken_fnoi : 1;
} status;
ULONG sernum; /* Volume Serial Number */
char fsn[80]; /* Windows filesystem name */
IMPLEMENT_STATUS_FLAG (bool, has_buggy_fileid_dirinfo)
IMPLEMENT_STATUS_FLAG (bool, has_buggy_basic_info)
IMPLEMENT_STATUS_FLAG (bool, has_dos_filenames_only)
+ IMPLEMENT_STATUS_FLAG (bool, has_broken_fnoi)
IMPLEMENT_FS_FLAG (fat)
IMPLEMENT_FS_FLAG (ntfs)
IMPLEMENT_FS_FLAG (refs)
IMPLEMENT_FS_FLAG (nwfs)
IMPLEMENT_FS_FLAG (ncfsd)
IMPLEMENT_FS_FLAG (afs)
+ IMPLEMENT_FS_FLAG (prlfs)
fs_info_type what_fs () const { return status.fs_type; }
bool got_fs () const { return status.fs_type != none; }
}
else
{
- status = file_get_fnoi (h, fs.is_netapp (), conv_hdl.fnoi ());
+ status = file_get_fnoi (h, fs.has_broken_fnoi (),
+ conv_hdl.fnoi ());
if (NT_SUCCESS (status))
fileattr = conv_hdl.fnoi ()->FileAttributes;
}
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 ();}
+ int has_broken_fnoi () const {return fs.has_broken_fnoi ();}
int binmode () const
{
if (path_flags & PATH_BINARY)
What changed:
-------------
+- Add support for Parallels Desktop FS (prlfs).
+
Bug Fixes
---------
+2015-11-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * new-features.xml (ov-new2.3): Document Parallels Desktop FS support.
+
2015-10-27 Corinna Vinschen <corinna@vinschen.de>
* new-features.xml (ov-new2.3): Document strftime %s addition.
New API: aligned_alloc, at_quick_exit, quick_exit.
</para></listitem>
+<listitem><para>
+Add support for Parallels Desktop FS (prlfs).
+</para></listitem>
+
</itemizedlist>
</sect2>