Hello! On Tue, Nov 13, 2007 at 05:33:31PM -0800, Roland McGrath wrote: > > I.e., the usec / nsec value of variable `st' (``struct stat'') isn't set > > at all. In my reading of the used ``struct ext2_inode'' (variable `di') > > there indeed is nothing better than the sec value being provided. Should > > we explicitly set the usec / nsec value of `st' to zero? > > Yes. diskfs_make_node does not zero everything first, so read_node should > set every field.
Like this? #v+ 2007-11-17 Thomas Schwinge <[EMAIL PROTECTED]> * inode.c (read_node, write_node): Use `st->st_atim', `st->mtim', `st->ctim'. (read_node): Correctly initialize those. Index: inode.c =================================================================== RCS file: /cvsroot/hurd/hurd/ext2fs/inode.c,v retrieving revision 1.62 diff -u -p -r1.62 inode.c --- inode.c 8 Oct 2002 23:10:09 -0000 1.62 +++ inode.c 17 Nov 2007 14:22:07 -0000 @@ -216,15 +221,13 @@ read_node (struct node *np) st->st_size = di->i_size; st->st_gen = di->i_generation; - st->st_atime = di->i_atime; - st->st_mtime = di->i_mtime; - st->st_ctime = di->i_ctime; - -#ifdef XXX - st->st_atime_usec = di->i_atime.ts_nsec / 1000; - st->st_mtime_usec = di->i_mtime.ts_nsec / 1000; - st->st_ctime_usec = di->i_ctime.ts_nsec / 1000; -#endif + /* The ``struct ext2_inode'' doesn't do better than sec. precision yet. */ + st->st_atim.tv_sec = di->i_atime; + st->st_atim.tv_nsec = 0; + st->st_mtim.tv_sec = di->i_mtime; + st->st_mtim.tv_nsec = 0; + st->st_ctim.tv_sec = di->i_ctime; + st->st_ctim.tv_nsec = 0; st->st_blocks = di->i_blocks; @@ -446,13 +447,19 @@ write_node (struct node *np) di->i_links_count = st->st_nlink; - di->i_atime = st->st_atime; - di->i_mtime = st->st_mtime; - di->i_ctime = st->st_ctime; -#ifdef XXX - di->i_atime.ts_nsec = st->st_atime_usec * 1000; - di->i_mtime.ts_nsec = st->st_mtime_usec * 1000; - di->i_ctime.ts_nsec = st->st_ctime_usec * 1000; + /* The ``struct ext2_inode'' doesn't do better than sec. precision + yet. */ + di->i_atime = st->st_atim.tv_sec; +#ifdef not_yet + di->i_atime.ts_nsec = st->st_atim.tv_nsec; +#endif + di->i_mtime = st->st_mtim.tv_sec; +#ifdef not_yet + di->i_mtime.ts_nsec = st->st_mtim.tv_nsec; +#endif + di->i_ctime = st->st_ctim.tv_sec; +#ifdef not_yet + di->i_ctime.ts_nsec = st->st_ctim.tv_nsec; #endif /* Convert generic flags in ST->st_flags to ext2-specific flags in DI #v- Regards, Thomas
signature.asc
Description: Digital signature
_______________________________________________ Bug-hurd mailing list Bug-hurd@gnu.org http://lists.gnu.org/mailman/listinfo/bug-hurd