From 8dfeba80233c49f5eaea51c5143ad9ac268613b0 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Fri, 24 Jul 2020 10:06:43 -0700 Subject: [PATCH] FUSE: skip changing to empty uid and gid during flush Skip uid and gid changes if request uid and gid are zero mongodb lock file, and many interim files, has empty uid and gid I0724 10:05:51 93643 filehandle.go:173] /db/diagnostic.data/metrics.interim fh 1333342842031408359 flush Flush [ID=0x3 Node=0x50 Uid=0 Gid=0 Pid=178] 0x10 fl=0x0 lk=0x0 --- weed/filesys/filehandle.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/weed/filesys/filehandle.go b/weed/filesys/filehandle.go index 31fd08f97..21f86f6b5 100644 --- a/weed/filesys/filehandle.go +++ b/weed/filesys/filehandle.go @@ -191,8 +191,12 @@ func (fh *FileHandle) Flush(ctx context.Context, req *fuse.FlushRequest) error { if fh.f.entry.Attributes != nil { fh.f.entry.Attributes.Mime = fh.contentType - fh.f.entry.Attributes.Uid = req.Uid - fh.f.entry.Attributes.Gid = req.Gid + if req.Uid != 0 { + fh.f.entry.Attributes.Uid = req.Uid + } + if req.Gid != 0 { + fh.f.entry.Attributes.Gid = req.Gid + } fh.f.entry.Attributes.Mtime = time.Now().Unix() fh.f.entry.Attributes.Crtime = time.Now().Unix() fh.f.entry.Attributes.FileMode = uint32(os.FileMode(fh.f.entry.Attributes.FileMode) &^ fh.f.wfs.option.Umask)