* 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
This commit is contained in:
Corinna Vinschen
2009-01-29 20:32:08 +00:00
parent bacd5877ba
commit 43616e5526
7 changed files with 73 additions and 3 deletions

View File

@ -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;