code: func (a *Driver) Get(id, mountLabel string) (containerfs.ContainerFS, error) {
  	a.locker.Lock(id)
  	defer a.locker.Unlock(id)
  	parents, err := a.getParentLayerPaths(id)
  	if err != nil && !os.IsNotExist(err) {
  		return nil, err
  	}
  
  	a.pathCacheLock.Lock()
  	m, exists := a.pathCache[id]
  	a.pathCacheLock.Unlock()
  
  	if !exists {
  		m = a.getDiffPath(id)
  		if len(parents) > 0 {
  			m = a.getMountpoint(id)
  		}
  	}
  	if count := a.ctr.Increment(m); count > 1 {
  		return containerfs.NewLocalContainerFS(m), nil
  	}
  
  	// If a dir does not have a parent ( no layers )do not try to mount
  	// just return the diff path to the data
  	if len(parents) > 0 {
  		if err := a.mount(id, m, mountLabel, parents); err != nil {
  			return nil, err
  		}
  	}
  
  	a.pathCacheLock.Lock()
  	a.pathCache[id] = m
  	a.pathCacheLock.Unlock()
  	return containerfs.NewLocalContainerFS(m), nil
  }
docs: // Get returns the rootfs path for the id.
  // This will mount the dir at its given path