diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 164ebb644..a46d88a8d 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,15 @@ +2001-10-29 Christopher Faylor + + * fhandler.cc (fhandler_base::set_name): Set namehash here to catch + name changes. + (fhandler_base::open): Remove namehash setting. + (fhandler_base::fstat): Subtract 1 from arbitrary time setting to avoid + strange ls -l granularity problem. + +2001-10-24 Christopher Faylor + + * shared_info.h (MOUNT_VE + 2001-10-29 Christopher Faylor * select.cc (MAKEready): Remove extraneous select_read. diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index 1385223f0..682f4b715 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -189,6 +189,7 @@ fhandler_base::set_name (const char *unix_path, const char *win32_path, int unit system_printf ("fatal error. strdup failed"); exit (ENOMEM); } + namehash = hash_path_name (0, win32_path_name); } void @@ -411,7 +412,6 @@ fhandler_base::open (path_conv *, int flags, mode_t mode) && !allow_ntsec && allow_ntea) set_file_attribute (has_acls (), get_win32_name (), mode); - namehash = hash_path_name (0, get_win32_name ()); set_io_handle (x); int bin; int fmode; @@ -870,7 +870,7 @@ fhandler_base::fstat (struct stat *buf, path_conv *) buf->st_blksize = S_BLKSIZE; buf->st_dev = buf->st_rdev = FHDEVN (get_device ()) << 8 | (get_unit () & 0xff); buf->st_ino = get_namehash (); - buf->st_atime = buf->st_mtime = buf->st_ctime = time (NULL); + buf->st_atime = buf->st_mtime = buf->st_ctime = time (NULL) - 1; return 0; }