summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/path.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r--winsup/cygwin/path.cc25
1 files changed, 3 insertions, 22 deletions
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
{