* dir.cc (readdir): Fill out new old_d_ino field.

* fhandler.h (fhandler_base::namehash): Define as ino_t.
(fhandler_base::get_namehash): Ditto.
* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Accommodate new 64
bit st_ino.
* fhandler_socket.cc (fhandler_socket::fstat): Ditto.
* path.cc (hash_path_name): Return ino_t.
* syscalls.cc (stat64_to_stat32): Convert 64 bit inode to 32 bit.
* winsup.h (hash_path_name): Declare as returning ino_t.
* include/cygwin/stat.h (__stat32): Use 32 bit st_ino.
(__stat64): Use 64 bit st_ino.
* include/cygwin/types.h (__ino64_t): Define.
(__ino32_t): Ditto.
(ino_t): Define appropriately.
This commit is contained in:
Christopher Faylor
2003-05-11 00:10:11 +00:00
parent bf759a5ae6
commit 066ca06fd0
11 changed files with 82 additions and 56 deletions

View File

@ -442,14 +442,14 @@ fhandler_socket::fstat (struct __stat64 *buf, path_conv *pc)
if (get_socket_type ()) /* fstat */
{
buf->st_dev = 0;
buf->st_ino = (ino_t) get_handle ();
buf->st_ino = (ino_t) ((DWORD) get_handle ());
buf->st_mode = S_IFSOCK | S_IRWXU | S_IRWXG | S_IRWXO;
}
else
{
path_conv spc ("/dev", PC_SYM_NOFOLLOW | PC_NULLEMPTY, NULL);
buf->st_dev = spc.volser ();
buf->st_ino = (ino_t) get_namehash ();
buf->st_ino = get_namehash ();
buf->st_mode &= ~S_IRWXO;
buf->st_rdev = (get_device () << 16) | get_unit ();
}