// GetDentryAt implements vfs.FilesystemImpl.GetDentryAt.
GetDentryAt implements vfs.FilesystemImpl.GetDentryAt.
// GetDentryAt implements vfs . FilesystemImpl . GetDentryAt .
func (fs *filesystem) GetDentryAt(ctx context.Context, rp *vfs.ResolvingPath, opts vfs.GetDentryOptions) (*vfs.Dentry, error) {
	fs.mu.RLock()
	defer fs.mu.RUnlock()
	d, err := resolveLocked(ctx, rp)
	if err != nil {
		return nil, err
	}
	if opts.CheckSearchable {
		if !d.inode.isDir() {
			return nil, syserror.ENOTDIR
		}
		if err := d.inode.checkPermissions(rp.Credentials(), vfs.MayExec); err != nil {
			return nil, err
		}
	}
	d.IncRef()
	return &d.vfsd, nil
}
func ( fs * filesystem ) GetDentryAt ( ctx context . Context , rp * vfs . ResolvingPath , opts vfs . GetDentryOptions ) ( * vfs . Dentry , error ) { fs . mu . RLock ( ) defer fs . mu . RUnlock ( ) d , err := resolveLocked ( ctx , rp ) if err != nil { return nil , err } if opts . CheckSearchable { if ! d . inode . isDir ( ) { return nil , syserror . ENOTDIR } if err := d . inode . checkPermissions ( rp . Credentials ( ) , vfs . MayExec ) ; err != nil { return nil , err } } d . IncRef ( ) return & d . vfsd , nil }
GetDentryAt implements vfs.FilesystemImpl.GetDentryAt.
GetDentryAt implements vfs . FilesystemImpl . GetDentryAt .