--- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -4706,6 +4706,8 @@ void gf_zero_fill_stat (struct iatt *buf) { + buf->ia_fuse_ctime = buf->ia_ctime; + buf->ia_fuse_nlink = buf->ia_nlink; buf->ia_nlink = 0; buf->ia_ctime = 0; } --- a/libglusterfs/src/iatt.h +++ b/libglusterfs/src/iatt.h @@ -65,6 +65,8 @@ uint32_t ia_mtime_nsec; uint32_t ia_ctime; /* last status change time */ uint32_t ia_ctime_nsec; + uint32_t ia_fuse_nlink; /* Link count saved to fuse */ + uint32_t ia_fuse_ctime; /* last status change time saved to fuse*/ }; --- a/xlators/mount/fuse/src/fuse-helpers.c +++ b/xlators/mount/fuse/src/fuse-helpers.c @@ -517,6 +517,11 @@ fa->crtimensec = (uint32_t)-1; fa->flags = 0; #endif + if(gf_is_zero_filled_stat(st)) + { + fa->ctime = st->ia_fuse_ctime; + fa->nlink = st->ia_fuse_nlink; + } } void