diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2022-07-13 02:22:21 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2022-07-13 02:22:21 -0600 |
commit | ae84737c1bc0a5e137e1a25d7344f2ab8e420489 (patch) | |
tree | ccd031df8ae6f7d23a00f63cd57cb58b1f79944e /lib/btrfsprogs/btrfsinspect | |
parent | 8af2990bcad83ed8ee70a461c560b2dc610278ed (diff) |
mount: Implement symlinks
Diffstat (limited to 'lib/btrfsprogs/btrfsinspect')
-rw-r--r-- | lib/btrfsprogs/btrfsinspect/mount.go | 12 |
1 files changed, 11 insertions, 1 deletions
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 } |