aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/mount/weedfs_dir_lookup.go5
-rw-r--r--weed/mount/weedfs_dir_read.go4
2 files changed, 9 insertions, 0 deletions
diff --git a/weed/mount/weedfs_dir_lookup.go b/weed/mount/weedfs_dir_lookup.go
index 4eceb5ce4..6d0e1d6fa 100644
--- a/weed/mount/weedfs_dir_lookup.go
+++ b/weed/mount/weedfs_dir_lookup.go
@@ -55,6 +55,11 @@ func (wfs *WFS) Lookup(cancel <-chan struct{}, header *fuse.InHeader, name strin
inode := wfs.inodeToPath.Lookup(fullFilePath, localEntry.IsDirectory(), true)
+ if fh, found := wfs.fhmap.FindFileHandle(inode); found {
+ glog.V(4).Infof("lookup opened file %s size %d", dirPath.Child(localEntry.Name()), filer.FileSize(fh.entry))
+ localEntry = filer.FromPbEntry(string(dirPath), fh.entry)
+ }
+
wfs.outputFilerEntry(out, inode, localEntry)
return fuse.OK
diff --git a/weed/mount/weedfs_dir_read.go b/weed/mount/weedfs_dir_read.go
index 9e8587995..913d0ebeb 100644
--- a/weed/mount/weedfs_dir_read.go
+++ b/weed/mount/weedfs_dir_read.go
@@ -176,6 +176,10 @@ func (wfs *WFS) doReadDirectory(input *fuse.ReadIn, out *fuse.DirEntryList, isPl
isEarlyTerminated = true
return false
}
+ if fh, found := wfs.fhmap.FindFileHandle(inode); found {
+ glog.V(4).Infof("readdir opened file %s", dirPath.Child(dirEntry.Name))
+ entry = filer.FromPbEntry(string(dirPath), fh.entry)
+ }
wfs.outputFilerEntry(entryOut, inode, entry)
}
dh.lastEntryName = entry.Name()