From b44f05a2d0696578bef093c39cb981883285ec95 Mon Sep 17 00:00:00 2001 From: chrislu Date: Wed, 12 Jan 2022 19:31:25 -0800 Subject: [PATCH] POSIX: change timestamp on each attribute change --- weed/filesys/dir.go | 4 +++- weed/filesys/file.go | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/weed/filesys/dir.go b/weed/filesys/dir.go index 7701e7de9..79981259f 100644 --- a/weed/filesys/dir.go +++ b/weed/filesys/dir.go @@ -66,7 +66,7 @@ func (dir *Dir) Attr(ctx context.Context, attr *fuse.Attr) error { attr.Mode = os.FileMode(entry.Attributes.FileMode) | os.ModeDir attr.Mtime = time.Unix(entry.Attributes.Mtime, 0) attr.Crtime = time.Unix(entry.Attributes.Crtime, 0) - attr.Ctime = time.Unix(entry.Attributes.Crtime, 0) + attr.Ctime = time.Unix(entry.Attributes.Mtime, 0) attr.Atime = time.Unix(entry.Attributes.Mtime, 0) attr.Gid = entry.Attributes.Gid attr.Uid = entry.Attributes.Uid @@ -515,6 +515,8 @@ func (dir *Dir) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fus entry.Attributes.Mtime = req.Mtime.Unix() } + entry.Attributes.Mtime = time.Now().Unix() + return dir.saveEntry(entry) } diff --git a/weed/filesys/file.go b/weed/filesys/file.go index 7b5b5a424..e971aa2e0 100644 --- a/weed/filesys/file.go +++ b/weed/filesys/file.go @@ -149,21 +149,25 @@ func (file *File) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *f if req.Valid.Mode() && entry.Attributes.FileMode != uint32(req.Mode) { entry.Attributes.FileMode = uint32(req.Mode) + entry.Attributes.Mtime = time.Now().Unix() file.dirtyMetadata = true } if req.Valid.Uid() && entry.Attributes.Uid != req.Uid { entry.Attributes.Uid = req.Uid + entry.Attributes.Mtime = time.Now().Unix() file.dirtyMetadata = true } if req.Valid.Gid() && entry.Attributes.Gid != req.Gid { entry.Attributes.Gid = req.Gid + entry.Attributes.Mtime = time.Now().Unix() file.dirtyMetadata = true } if req.Valid.Crtime() { entry.Attributes.Crtime = req.Crtime.Unix() + entry.Attributes.Mtime = time.Now().Unix() file.dirtyMetadata = true }