summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/path.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2010-10-02 19:03:44 +0000
committerCorinna Vinschen <corinna@vinschen.de>2010-10-02 19:03:44 +0000
commit1da77c2678b3f69f2bc212e79df6432a9fffb61c (patch)
tree8555f453d363cac9164bc18873759a7fb9c11ed8 /winsup/cygwin/path.cc
parent1d694d8e5c51b5290f52f8ba1a410b686b2b333f (diff)
downloadcygnal-1da77c2678b3f69f2bc212e79df6432a9fffb61c.tar.gz
cygnal-1da77c2678b3f69f2bc212e79df6432a9fffb61c.tar.bz2
cygnal-1da77c2678b3f69f2bc212e79df6432a9fffb61c.zip
* 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.
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
{