From f401b996eb421294920fe048df5b1b646a558324 Mon Sep 17 00:00:00 2001 From: chrislu Date: Tue, 26 Jul 2022 23:12:25 -0700 Subject: [PATCH] mount: fix symlink size reporting --- weed/mount/weedfs_attr.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/weed/mount/weedfs_attr.go b/weed/mount/weedfs_attr.go index e31c170cb..dc7a3bc85 100644 --- a/weed/mount/weedfs_attr.go +++ b/weed/mount/weedfs_attr.go @@ -143,6 +143,9 @@ func (wfs *WFS) setAttrByPbEntry(out *fuse.Attr, inode uint64, entry *filer_pb.E out.Ino = entry.Attributes.Inode } 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 setBlksize(out, blockSize) 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) { out.Ino = inode out.Size = entry.FileSize + if entry.Mode&os.ModeSymlink != 0 { + out.Size = uint64(len(entry.SymlinkTarget)) + } out.Blocks = (out.Size + blockSize - 1) / blockSize setBlksize(out, blockSize) out.Atime = uint64(entry.Attr.Mtime.Unix())