// LOCKS_EXCLUDED(fs.mu) func (fs *fileSystem) LookUpInode( op *fuseops.LookUpInodeOp) (err error) { // Find the parent directory in question. fs.mu.Lock() parent := fs.inodes[op.Parent].(inode.DirInode) fs.mu.Unlock() // Find or create the child inode. child, err := fs.lookUpOrCreateChildInode(op.Context(), parent, op.Name) if err != nil { return } defer fs.unlockAndMaybeDisposeOfInode(child, &err) // Fill out the response. op.Entry.Child = child.ID() if op.Entry.Attributes, err = child.Attributes(op.Context()); err != nil { return } return }