* fhandler_disk_file.cc (fhandler_disk_file::opendir): Only set
the dirent_get_d_ino flag on filesystems having useful File IDs. Add comment explaining why.
This commit is contained in:
parent
9d1c0a6053
commit
30f1c8a675
|
@ -1,3 +1,9 @@
|
||||||
|
2006-02-09 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Only set
|
||||||
|
the dirent_get_d_ino flag on filesystems having useful File IDs.
|
||||||
|
Add comment explaining why.
|
||||||
|
|
||||||
2006-02-07 Corinna Vinschen <corinna@vinschen.de>
|
2006-02-07 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* dtable.cc (handle_to_fn): Accomodate new argument order in call to
|
* dtable.cc (handle_to_fn): Accomodate new argument order in call to
|
||||||
|
|
|
@ -1450,10 +1450,20 @@ fhandler_disk_file::opendir ()
|
||||||
__seterrno ();
|
__seterrno ();
|
||||||
goto free_dirent;
|
goto free_dirent;
|
||||||
}
|
}
|
||||||
if (wincap.has_fileid_dirinfo ())
|
/* FileIdBothDirectoryInformation is apparently unsupported on XP
|
||||||
dir->__flags |= dirent_get_d_ino;
|
when accessing directories on UDF. When trying to use it so,
|
||||||
|
NtQueryDirectoryFile returns with STATUS_ACCESS_VIOLATION. It's
|
||||||
|
not clear if the call isn't also unsupported on other OS/FS
|
||||||
|
combinations (say, Win2K/CDFS or so). Instead of testing in
|
||||||
|
readdir for yet another error code, let's use
|
||||||
|
FileIdBothDirectoryInformation only on filesystems supporting
|
||||||
|
persistent ACLs, FileBothDirectoryInformation otherwise. */
|
||||||
if (pc.hasgood_inode ())
|
if (pc.hasgood_inode ())
|
||||||
dir->__flags |= dirent_set_d_ino;
|
{
|
||||||
|
dir->__flags |= dirent_set_d_ino;
|
||||||
|
if (wincap.has_fileid_dirinfo ())
|
||||||
|
dir->__flags |= dirent_get_d_ino;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
res = dir;
|
res = dir;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue