mount: fix symlink size reporting

This commit is contained in:
chrislu 2022-07-26 23:12:25 -07:00
parent f18bc2d9dd
commit f401b996eb

View File

@ -143,6 +143,9 @@ func (wfs *WFS) setAttrByPbEntry(out *fuse.Attr, inode uint64, entry *filer_pb.E
out.Ino = entry.Attributes.Inode out.Ino = entry.Attributes.Inode
} }
out.Size = filer.FileSize(entry) out.Size = filer.FileSize(entry)
if entry.FileMode()&os.ModeSymlink != 0 {
out.Size = uint64(len(entry.Attributes.SymlinkTarget))
}
out.Blocks = (out.Size + blockSize - 1) / blockSize out.Blocks = (out.Size + blockSize - 1) / blockSize
setBlksize(out, blockSize) setBlksize(out, blockSize)
if entry == nil { if entry == nil {
@ -165,6 +168,9 @@ func (wfs *WFS) setAttrByPbEntry(out *fuse.Attr, inode uint64, entry *filer_pb.E
func (wfs *WFS) setAttrByFilerEntry(out *fuse.Attr, inode uint64, entry *filer.Entry) { func (wfs *WFS) setAttrByFilerEntry(out *fuse.Attr, inode uint64, entry *filer.Entry) {
out.Ino = inode out.Ino = inode
out.Size = entry.FileSize out.Size = entry.FileSize
if entry.Mode&os.ModeSymlink != 0 {
out.Size = uint64(len(entry.SymlinkTarget))
}
out.Blocks = (out.Size + blockSize - 1) / blockSize out.Blocks = (out.Size + blockSize - 1) / blockSize
setBlksize(out, blockSize) setBlksize(out, blockSize)
out.Atime = uint64(entry.Attr.Mtime.Unix()) out.Atime = uint64(entry.Attr.Mtime.Unix())