Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2015-11-04 16:47:25 +0300
committerCorinna Vinschen <corinna@vinschen.de>2015-11-04 16:47:25 +0300
commit57d93bebb2d940f4f2338a5e156f9ddcd7d1fbc7 (patch)
tree8ff649e9eebf7c1ee135e32d5ec4b55af06ca5ec
parent58922d312545df8449fe297ccfa66fea613bbec9 (diff)
Accommodate trailing NUL in PrlSF filesystem name.
* globals.cc (ro_u_prlfs): Add trailing NUL. Explain why. * mount.cc (fs_info::update): Add a comment to explain PrlSF. * path.h (path_conv::fs_is_prlfs): Add for symmetry. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/globals.cc4
-rw-r--r--winsup/cygwin/mount.cc2
-rw-r--r--winsup/cygwin/path.h1
4 files changed, 12 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index b990d9f15..b848583e7 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,9 @@
+2015-11-04 Corinna Vinschen <corinna@vinschen.de>
+
+ * globals.cc (ro_u_prlfs): Add trailing NUL. Explain why.
+ * mount.cc (fs_info::update): Add a comment to explain PrlSF.
+ * path.h (path_conv::fs_is_prlfs): Add for symmetry.
+
2015-11-03 Corinna Vinschen <corinna@vinschen.de>
* sigproc.cc (pending_signals::clear): Fix previous fix resulting in
diff --git a/winsup/cygwin/globals.cc b/winsup/cygwin/globals.cc
index 7a17376af..383b8f115 100644
--- a/winsup/cygwin/globals.cc
+++ b/winsup/cygwin/globals.cc
@@ -138,7 +138,9 @@ extern "C" {
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! */
+ /* No typo! It's actually "SF", not "FS", and the trailing NUL is counted
+ 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");
diff --git a/winsup/cygwin/mount.cc b/winsup/cygwin/mount.cc
index 01f17598c..66e857160 100644
--- a/winsup/cygwin/mount.cc
+++ b/winsup/cygwin/mount.cc
@@ -371,6 +371,8 @@ fs_info::update (PUNICODE_STRING upath, HANDLE in_vol)
/* AFSRDRFsd == Andrew File System. Doesn't support DOS attributes.
Only native symlinks are supported. */
&& !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
diff --git a/winsup/cygwin/path.h b/winsup/cygwin/path.h
index f8cb37a8b..ce41645e0 100644
--- a/winsup/cygwin/path.h
+++ b/winsup/cygwin/path.h
@@ -376,6 +376,7 @@ class path_conv
bool fs_is_nwfs () const {return fs.is_nwfs ();}
bool fs_is_ncfsd () const {return fs.is_ncfsd ();}
bool fs_is_afs () const {return fs.is_afs ();}
+ bool fs_is_prlfs () const {return fs.is_prlfs ();}
fs_info_type fs_type () const {return fs.what_fs ();}
ULONG fs_serial_number () const {return fs.serial_number ();}
inline const char *set_path (const char *p)