Implementing inode.Getlink

kernfs uses inode.Getlink to resolve symlink when look up paths.

Updates #3452
This commit is contained in:
Craig Chi 2020-08-20 10:40:41 -07:00 committed by Andrei Vagin
parent 21cac9dd04
commit 983e30c016
1 changed files with 6 additions and 0 deletions

View File

@ -488,6 +488,12 @@ func (i *inode) newEntry(ctx context.Context, name string, fileType linux.FileMo
return child.VFSDentry(), nil
}
// Getlink implements Inode.Getlink.
func (i *inode) Getlink(ctx context.Context, mnt *vfs.Mount) (vfs.VirtualDentry, string, error) {
path, err := i.Readlink(ctx, mnt)
return vfs.VirtualDentry{}, path, err
}
// Readlink implements kernfs.Inode.Readlink.
func (i *inode) Readlink(ctx context.Context, mnt *vfs.Mount) (string, error) {
if i.Mode().FileType()&linux.S_IFLNK == 0 {