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>2011-10-21 12:29:19 +0400
committerCorinna Vinschen <corinna@vinschen.de>2011-10-21 12:29:19 +0400
commit69178ca038167aac9b18b86391489ad4f1e8a3e3 (patch)
treeb7f5c52062ef3081f8fdf5b0514d323c59497ff0 /winsup/cygwin/mount.cc
parentb2099ee728addd34b0497bcddcc0fcd6a2503f0b (diff)
* globals.cc (ro_u_ncfsd): New R/O unicode string.
* mount.cc (fs_info::update): Check for "NcFsd" FS. Set flags and change comments accordingly. (fs_names): Add entry for NcFsd FS. * mount.h (enum fs_info_type): Add ncfsd. (class fs_info): Add ncfsd flag and accessor methods. * path.h (class path_conv): Add fs_is_ncfsd method. * syscalls.cc (unlink_nt): Experimentally try delete-on-close on NcFsd in STATUS_CANNOT_DELETE case.
Diffstat (limited to 'winsup/cygwin/mount.cc')
-rw-r--r--winsup/cygwin/mount.cc20
1 files changed, 12 insertions, 8 deletions
diff --git a/winsup/cygwin/mount.cc b/winsup/cygwin/mount.cc
index aac78cf89..a9accfad9 100644
--- a/winsup/cygwin/mount.cc
+++ b/winsup/cygwin/mount.cc
@@ -360,7 +360,9 @@ fs_info::update (PUNICODE_STRING upath, HANDLE in_vol)
and stuff like that. */
&& !is_mvfs (RtlEqualUnicodePathPrefix (&fsname, &ro_u_mvfs, FALSE))
/* NWFS == Novell Netware FS. Broken info class, see below. */
+ /* NcFsd == Novell Netware FS via own driver since Windows Vista. */
&& !is_nwfs (RtlEqualUnicodeString (&fsname, &ro_u_nwfs, FALSE))
+ && !is_ncfsd (RtlEqualUnicodeString (&fsname, &ro_u_ncfsd, FALSE))
/* UNIXFS == TotalNet Advanced Server (TAS). Doesn't support
FileIdBothDirectoryInformation. See below. */
&& !is_unixfs (RtlEqualUnicodeString (&fsname, &ro_u_unixfs, FALSE)))
@@ -377,22 +379,23 @@ fs_info::update (PUNICODE_STRING upath, HANDLE in_vol)
Know example: EMC NS-702. We just don't use that info class on
any remote CIFS. */
has_buggy_fileid_dirinfo (is_cifs () || is_unixfs ());
- /* NWFS is known to have a broken FileBasicInformation info class.
- It can't be used to fetch information, only to set information.
- Therefore, for NWFS we have to fallback to the
+ /* NWFS/NcFsd is known to have a broken FileBasicInformation info
+ class. It can't be used to fetch information, only to set
+ information. Therefore, for NWFS we have to fallback to the
FileNetworkOpenInformation info class. Unfortunately we can't
use FileNetworkOpenInformation all the time since that fails on
other filesystems like NFS.
UNUSED, but keep in for information purposes. */
- has_buggy_basic_info (is_nwfs ());
- /* Netapp and NWFS are too dumb to allow non-DOS filenames
+ has_buggy_basic_info (is_nwfs () || is_ncfsd ());
+ /* Netapp and NWFS/NcFsd are too dumb to allow non-DOS filenames
containing trailing dots and spaces when accessed from Windows
clients. We subsume CIFS into this class of filesystems right
away since at least some of them are not capable either. */
- has_dos_filenames_only (is_netapp () || is_nwfs () || is_cifs ());
+ has_dos_filenames_only (is_netapp () || is_nwfs ()
+ || is_ncfsd () || is_cifs ());
/* NWFS does not grok re-opening a file by handle. It only
supports this if the filename is non-null and the handle is
- the handle to a directory. */
+ the handle to a directory. NcFsd IR10 is supposed to be ok. */
has_buggy_reopen (is_nwfs ());
}
}
@@ -1584,7 +1587,8 @@ fs_names_t fs_names[] = {
{ "unixfs", false },
{ "mvfs", false },
{ "cifs", false },
- { "nwfs", false }
+ { "nwfs", false },
+ { "ncfsd", false }
};
static mntent *