* 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:
@ -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 ();
|
||||
}
|
||||
|
Reference in New Issue
Block a user