* 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.
This commit is contained in:
Corinna Vinschen
2008-05-21 09:02:42 +00:00
parent 2762ac6c19
commit 0d3f365881
4 changed files with 50 additions and 10 deletions

View File

@ -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)