summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2005-11-28 10:06:33 +0000
committerCorinna Vinschen <corinna@vinschen.de>2005-11-28 10:06:33 +0000
commit87b69d92437c63d842112616e29b66b3b5859f9d (patch)
treeb09d327d8ff476437a35fdd1fbaa4390c9f7284a
parent3e58f18822eeba1dade6a4c00d2a0764e1fe4687 (diff)
downloadcygnal-87b69d92437c63d842112616e29b66b3b5859f9d.tar.gz
cygnal-87b69d92437c63d842112616e29b66b3b5859f9d.tar.bz2
cygnal-87b69d92437c63d842112616e29b66b3b5859f9d.zip
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't rely on
has_acl() state for evaluating inodes. Temporarily(?) enable "real" inodes for remote drives.
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/fhandler_disk_file.cc8
2 files changed, 12 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 36d231117..acad14710 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,9 @@
+2005-11-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't rely on
+ has_acl() state for evaluating inodes. Temporarily(?) enable "real"
+ inodes for remote drives.
+
2005-11-25 Christopher Faylor <cgf@timesys.com>
* heap.cc: Remove spurious getpagesize declaration.
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc
index 9f30b562f..82bd120c2 100644
--- a/winsup/cygwin/fhandler_disk_file.cc
+++ b/winsup/cygwin/fhandler_disk_file.cc
@@ -317,14 +317,18 @@ fhandler_base::fstat_helper (struct __stat64 *buf,
/* Assume that if a drive has ACL support it MAY have valid "inodes".
It definitely does not have valid inodes if it does not have ACL
- support. */
- switch (pc.has_acls () && (nFileIndexHigh || nFileIndexLow)
+ support. Decouple from has_acls() which follows smbntsec setting. */
+ switch ((pc.fs_flags () & FILE_PERSISTENT_ACLS)
+ && (nFileIndexHigh || nFileIndexLow)
? pc.drive_type () : DRIVE_UNKNOWN)
{
case DRIVE_FIXED:
case DRIVE_REMOVABLE:
case DRIVE_CDROM:
case DRIVE_RAMDISK:
+ /* Temporarily enable remote drives until we find out why we disabled them
+ in the first place. When we find out don't forget to write a comment! */
+ case DRIVE_REMOTE:
/* Although the documentation indicates otherwise, it seems like
"inodes" on these devices are persistent, at least across reboots. */
buf->st_ino = (((__ino64_t) nFileIndexHigh) << 32)