|
@ -26,7 +26,6 @@ type FileHandle struct { |
|
|
contentType string |
|
|
contentType string |
|
|
handle uint64 |
|
|
handle uint64 |
|
|
sync.Mutex |
|
|
sync.Mutex |
|
|
sync.WaitGroup |
|
|
|
|
|
|
|
|
|
|
|
f *File |
|
|
f *File |
|
|
RequestId fuse.RequestID // unique ID for request
|
|
|
RequestId fuse.RequestID // unique ID for request
|
|
@ -63,9 +62,6 @@ var _ = fs.HandleReleaser(&FileHandle{}) |
|
|
|
|
|
|
|
|
func (fh *FileHandle) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error { |
|
|
func (fh *FileHandle) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error { |
|
|
|
|
|
|
|
|
fh.Add(1) |
|
|
|
|
|
defer fh.Done() |
|
|
|
|
|
|
|
|
|
|
|
fh.Lock() |
|
|
fh.Lock() |
|
|
defer fh.Unlock() |
|
|
defer fh.Unlock() |
|
|
|
|
|
|
|
@ -173,9 +169,6 @@ func (fh *FileHandle) readFromChunks(buff []byte, offset int64) (int64, error) { |
|
|
// Write to the file handle
|
|
|
// Write to the file handle
|
|
|
func (fh *FileHandle) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error { |
|
|
func (fh *FileHandle) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error { |
|
|
|
|
|
|
|
|
fh.Add(1) |
|
|
|
|
|
defer fh.Done() |
|
|
|
|
|
|
|
|
|
|
|
fh.dirtyPages.writerPattern.MonitorWriteAt(req.Offset, len(req.Data)) |
|
|
fh.dirtyPages.writerPattern.MonitorWriteAt(req.Offset, len(req.Data)) |
|
|
|
|
|
|
|
|
fh.Lock() |
|
|
fh.Lock() |
|
@ -217,8 +210,6 @@ func (fh *FileHandle) Release(ctx context.Context, req *fuse.ReleaseRequest) err |
|
|
|
|
|
|
|
|
glog.V(4).Infof("Release %v fh %d open=%d", fh.f.fullpath(), fh.handle, fh.f.isOpen) |
|
|
glog.V(4).Infof("Release %v fh %d open=%d", fh.f.fullpath(), fh.handle, fh.f.isOpen) |
|
|
|
|
|
|
|
|
fh.Wait() |
|
|
|
|
|
|
|
|
|
|
|
fh.f.wfs.handlesLock.Lock() |
|
|
fh.f.wfs.handlesLock.Lock() |
|
|
fh.f.isOpen-- |
|
|
fh.f.isOpen-- |
|
|
fh.f.wfs.handlesLock.Unlock() |
|
|
fh.f.wfs.handlesLock.Unlock() |
|
@ -250,9 +241,6 @@ func (fh *FileHandle) Flush(ctx context.Context, req *fuse.FlushRequest) error { |
|
|
return nil |
|
|
return nil |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
fh.Add(1) |
|
|
|
|
|
defer fh.Done() |
|
|
|
|
|
|
|
|
|
|
|
fh.Lock() |
|
|
fh.Lock() |
|
|
defer fh.Unlock() |
|
|
defer fh.Unlock() |
|
|
|
|
|
|
|
|