From 1da77c2678b3f69f2bc212e79df6432a9fffb61c Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Sat, 2 Oct 2010 19:03:44 +0000 Subject: * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Simplify. Just call nfs_fetch_fattr3 if called via fstat. * nfs.cc (nfs_fetch_fattr3): New function to fetch NFS fattr3 info from file handle. * nfs.h (nfs_fetch_fattr3): Declare. * path.cc (symlink_info::check): Simplify NFS case. Just call nfs_fetch_fattr3. --- winsup/cygwin/path.cc | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) (limited to 'winsup/cygwin/path.cc') diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 8c98e4dab..bc655c84f 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -2404,29 +2404,10 @@ restart: { if (fs.is_nfs ()) { - struct { - FILE_FULL_EA_INFORMATION ffei; - char buf[sizeof (NFS_V3_ATTR) + sizeof (fattr3)]; - } ffei_buf; - struct { - FILE_GET_EA_INFORMATION fgei; - char buf[sizeof (NFS_V3_ATTR)]; - } fgei_buf; - - fgei_buf.fgei.NextEntryOffset = 0; - fgei_buf.fgei.EaNameLength = sizeof (NFS_V3_ATTR) - 1; - stpcpy (fgei_buf.fgei.EaName, NFS_V3_ATTR); - status = NtQueryEaFile (h, &io, &ffei_buf.ffei, sizeof ffei_buf, - TRUE, &fgei_buf.fgei, sizeof fgei_buf, - NULL, TRUE); + status = nfs_fetch_fattr3 (h, conv_hdl.nfsattr ()); if (NT_SUCCESS (status)) - { - fattr3 *nfs_attr = (fattr3 *) - (ffei_buf.ffei.EaName + ffei_buf.ffei.EaNameLength + 1); - memcpy (conv_hdl.nfsattr (), nfs_attr, sizeof (fattr3)); - fileattr = ((nfs_attr->type & 7) == NF3DIR) - ? FILE_ATTRIBUTE_DIRECTORY : 0; - } + fileattr = ((conv_hdl.nfsattr ()->type & 7) == NF3DIR) + ? FILE_ATTRIBUTE_DIRECTORY : 0; } else { -- cgit v1.2.3