Browse Source

mount2: dir read opened file

original_weed_mount
chrislu 3 years ago
parent
commit
b93d57da31
  1. 5
      weed/mount/weedfs_dir_lookup.go
  2. 4
      weed/mount/weedfs_dir_read.go

5
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) 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) wfs.outputFilerEntry(out, inode, localEntry)
return fuse.OK return fuse.OK

4
weed/mount/weedfs_dir_read.go

@ -176,6 +176,10 @@ func (wfs *WFS) doReadDirectory(input *fuse.ReadIn, out *fuse.DirEntryList, isPl
isEarlyTerminated = true isEarlyTerminated = true
return false 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) wfs.outputFilerEntry(entryOut, inode, entry)
} }
dh.lastEntryName = entry.Name() dh.lastEntryName = entry.Name()

Loading…
Cancel
Save