diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2008-05-21 09:02:42 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2008-05-21 09:02:42 +0000 |
commit | 0d3f3658816a3759e608d6b944bb22ad194f389c (patch) | |
tree | 376fcd68501dae5d7633427c5600cb64962a4fc4 /winsup/cygwin/path.cc | |
parent | 2762ac6c1944e320cb880f40866d47475f9892ba (diff) | |
download | cygnal-0d3f3658816a3759e608d6b944bb22ad194f389c.tar.gz cygnal-0d3f3658816a3759e608d6b944bb22ad194f389c.tar.bz2 cygnal-0d3f3658816a3759e608d6b944bb22ad194f389c.zip |
* fhandler.h (dirent_states): Add dirent_nfs_d_ino state and add it to
dirent_info_mask.
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Set
dirent_nfs_d_ino flag for NFS shares. Explain why.
(fhandler_disk_file::readdir): Use FileNamesInformation instead of
FileBothDirectoryInformation info class on NFS clients not supporting
the FileIdBothDirectoryInformation info class. Use local pointers to
accommodate different offsets.
* path.cc (symlink_info::check): Don't test directories for symlinks
on NFS shares. Enhance comment.
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r-- | winsup/cygwin/path.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index d01b7f8a2..92994d1b1 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -2514,8 +2514,9 @@ symlink_info::check (char *path, const suffix_info *suffixes, unsigned opt, } /* If the file could be opened with FILE_READ_EA, and if it's on a - NFS share, check if it's a symlink. */ - else if (!no_ea && fs.is_nfs ()) + NFS share, check if it's a symlink. Only files can be symlinks + (which can be symlinks to directories). */ + else if (!no_ea && !(fileattr & FILE_ATTRIBUTE_DIRECTORY) && fs.is_nfs ()) { res = check_nfs_symlink (h); if (!res) |