// ReadlinkAt implements vfs.FilesystemImpl.ReadlinkAt.
ReadlinkAt implements vfs.FilesystemImpl.ReadlinkAt.
// ReadlinkAt implements vfs . FilesystemImpl . ReadlinkAt .
func (fs *filesystem) ReadlinkAt(ctx context.Context, rp *vfs.ResolvingPath) (string, error) {
	fs.mu.RLock()
	defer fs.mu.RUnlock()
	d, err := resolveLocked(ctx, rp)
	if err != nil {
		return "", err
	}
	symlink, ok := d.inode.impl.(*symlink)
	if !ok {
		return "", syserror.EINVAL
	}
	symlink.inode.touchAtime(rp.Mount())
	return symlink.target, nil
}
func ( fs * filesystem ) ReadlinkAt ( ctx context . Context , rp * vfs . ResolvingPath ) ( string , error ) { fs . mu . RLock ( ) defer fs . mu . RUnlock ( ) d , err := resolveLocked ( ctx , rp ) if err != nil { return " " , err } symlink , ok := d . inode . impl . ( * symlink ) if ! ok { return " " , syserror . EINVAL } symlink . inode . touchAtime ( rp . Mount ( ) ) return symlink . target , nil }
ReadlinkAt implements vfs.FilesystemImpl.ReadlinkAt.
ReadlinkAt implements vfs . FilesystemImpl . ReadlinkAt .