code: func (d *dir) mkfile(p string) (*file, error) {
  	n := d.find(p)
  	if n.path() == p {
  		if n.isdir() {
  			return nil, errIsDir
  		}
  
  		return n.(*file), nil
  	}
  
  	dirpath, filename := path.Split(p)
  	// Make any non-existent directories
  	n, err := d.mkdirs(dirpath)
  	if err != nil {
  		return nil, err
  	}
  
  	dd := n.(*dir)
  	n = &file{
  		common: common{
  			p:   path.Join(dd.path(), filename),
  			mod: time.Now(),
  		},
  	}
  
  	dd.add(n)
  	return n.(*file), nil
  }
docs: // mkfile or return the existing one. returns an error if it exists and is a
  // directory. Essentially, this is open or create.