From ae84737c1bc0a5e137e1a25d7344f2ab8e420489 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 13 Jul 2022 02:22:21 -0600 Subject: mount: Implement symlinks --- lib/btrfsprogs/btrfsinspect/mount.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/btrfsprogs/btrfsinspect/mount.go b/lib/btrfsprogs/btrfsinspect/mount.go index 2df84f5..c171ed3 100644 --- a/lib/btrfsprogs/btrfsinspect/mount.go +++ b/lib/btrfsprogs/btrfsinspect/mount.go @@ -397,7 +397,17 @@ func (sv *subvolume) ReleaseFileHandle(_ context.Context, op *fuseops.ReleaseFil } func (sv *subvolume) ReadSymlink(_ context.Context, op *fuseops.ReadSymlinkOp) error { - return syscall.ENOSYS + file, err := sv.LoadFile(btrfs.ObjID(op.Inode)) + if err != nil { + return err + } + reader := io.NewSectionReader(file, 0, file.InodeItem.Size) + tgt, err := io.ReadAll(reader) + if err != nil { + return err + } + op.Target = string(tgt) + return nil } func (sv *subvolume) GetXattr(_ context.Context, op *fuseops.GetXattrOp) error { return syscall.ENOSYS } -- cgit v1.2.3-2-g168b