mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
do not read attributes when file is opened
This commit is contained in:
parent
6d1bcd4b8c
commit
ac66c133a5
|
@ -120,6 +120,7 @@ func (dir *Dir) Create(ctx context.Context, req *fuse.CreateRequest,
|
|||
if err == nil {
|
||||
file := dir.newFile(req.Name, nil)
|
||||
dir.NodeMap[req.Name] = file
|
||||
file.isOpen = true
|
||||
return file, &FileHandle{
|
||||
f: file,
|
||||
RequestId: req.Header.ID,
|
||||
|
|
|
@ -23,13 +23,14 @@ type File struct {
|
|||
dir *Dir
|
||||
wfs *WFS
|
||||
attributes *filer_pb.FuseAttributes
|
||||
isOpen bool
|
||||
}
|
||||
|
||||
func (file *File) Attr(context context.Context, attr *fuse.Attr) error {
|
||||
|
||||
fullPath := filepath.Join(file.dir.Path, file.Name)
|
||||
|
||||
if file.attributes == nil {
|
||||
if file.attributes == nil || !file.isOpen {
|
||||
item := file.wfs.listDirectoryEntriesCache.Get(fullPath)
|
||||
if item != nil {
|
||||
entry := item.Value().(*filer_pb.Entry)
|
||||
|
@ -80,6 +81,8 @@ func (file *File) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.Op
|
|||
|
||||
glog.V(3).Infof("%v file open %+v", fullPath, req)
|
||||
|
||||
file.isOpen = true
|
||||
|
||||
return &FileHandle{
|
||||
f: file,
|
||||
RequestId: req.Header.ID,
|
||||
|
|
|
@ -184,6 +184,8 @@ func (fh *FileHandle) Release(ctx context.Context, req *fuse.ReleaseRequest) err
|
|||
|
||||
glog.V(3).Infof("%+v/%v release fh", fh.f.dir.Path, fh.f.Name)
|
||||
|
||||
fh.f.isOpen = false
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue