X-Git-Url: https://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2Fafs%2FUKERNEL%2Fafs_usrops.c;h=b5d5a2b3e7db83c400f503c4977d4f1adc834708;hp=1db43c54aad602cf4740963f690d6d51c170548c;hb=955bab670d0aed714fc940b5be7e2b75896a63d0;hpb=80943970b8cfcdf3fc630b25804aebaea228bd73 diff --git a/src/afs/UKERNEL/afs_usrops.c b/src/afs/UKERNEL/afs_usrops.c index 1db43c5..b5d5a2b 100644 --- a/src/afs/UKERNEL/afs_usrops.c +++ b/src/afs/UKERNEL/afs_usrops.c @@ -2458,6 +2458,16 @@ uafs_GetAttr(struct usr_vnode *vp, struct stat *stats) stats->st_atime = attrs.va_atime.tv_sec; stats->st_mtime = attrs.va_mtime.tv_sec; stats->st_ctime = attrs.va_ctime.tv_sec; + /* preserve dv if possible */ +#if defined(HAVE_STRUCT_STAT_ST_CTIMESPEC) + stats->st_atimespec.tv_nsec = attrs.va_atime.tv_usec * 1000; + stats->st_mtimespec.tv_nsec = attrs.va_mtime.tv_usec * 1000; + stats->st_ctimespec.tv_nsec = attrs.va_ctime.tv_usec * 1000; +#elif defined(HAVE_STRUCT_STAT_ST_CTIMENSEC) + stats->st_atimensec = attrs.va_atime.tv_usec * 1000; + stats->st_mtimensec = attrs.va_mtime.tv_usec * 1000; + stats->st_ctimensec = attrs.va_ctime.tv_usec * 1000; +#endif stats->st_blksize = attrs.va_blocksize; stats->st_blocks = attrs.va_blocks;