summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_disk_file.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2009-01-29 20:32:08 +0000
committerCorinna Vinschen <corinna@vinschen.de>2009-01-29 20:32:08 +0000
commit43616e5526861e4e6afeafb2f9cf4d4626a237b6 (patch)
tree4578bfc345ff5b9720e1b40d675bee292e6b18f1 /winsup/cygwin/fhandler_disk_file.cc
parentbacd5877baf38e412c61b47f9ea24a24e01814e8 (diff)
downloadcygnal-43616e5526861e4e6afeafb2f9cf4d4626a237b6.tar.gz
cygnal-43616e5526861e4e6afeafb2f9cf4d4626a237b6.tar.bz2
cygnal-43616e5526861e4e6afeafb2f9cf4d4626a237b6.zip
* fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix inode number
evaluation for faked "." entry. * mount.cc (fs_info::update): Move setting of is_cdrom after checking for caseinsensitivity. Recognize UDF in is_cdrom case and set caseinsensitive flag according to UDF brokenness determined by OS. Add comment to explain why. * mount.h (class fs_info): Add is_udf status flag. * path.cc (symlink_info::check): Add workaround for UDF bug in terms of casesensitivity on certain OSes. * wincap.h (wincaps::has_broken_udf): New element. (wincaps::has_broken_udf): New element
Diffstat (limited to 'winsup/cygwin/fhandler_disk_file.cc')
-rw-r--r--winsup/cygwin/fhandler_disk_file.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc
index 2aad2ff79..7fd66b843 100644
--- a/winsup/cygwin/fhandler_disk_file.cc
+++ b/winsup/cygwin/fhandler_disk_file.cc
@@ -1928,7 +1928,8 @@ go_ahead:
else if (!(dir->__flags & dirent_saw_dot))
{
strcpy (de->d_name , ".");
- de->d_ino = get_ino_by_handle (get_handle ());
+ if (pc.isgood_inode (de->d_ino))
+ de->d_ino = get_ino_by_handle (get_handle ());
dir->__d_position++;
dir->__flags |= dirent_saw_dot;
res = 0;