code: func (b *portworxVolumeMounter) SetUpAt(dir string, fsGroup *int64) error {
  	notMnt, err := b.mounter.IsLikelyNotMountPoint(dir)
  	klog.Infof("Portworx Volume set up. Dir: %s %v %v", dir, !notMnt, err)
  	if err != nil && !os.IsNotExist(err) {
  		klog.Errorf("Cannot validate mountpoint: %s", dir)
  		return err
  	}
  	if !notMnt {
  		return nil
  	}
  
  	attachOptions := make(map[string]string)
  	attachOptions[attachContextKey] = dir
  	attachOptions[attachHostKey] = b.plugin.host.GetHostName()
  	if _, err := b.manager.AttachVolume(b, attachOptions); err != nil {
  		return err
  	}
  
  	klog.V(4).Infof("Portworx Volume %s attached", b.volumeID)
  
  	if err := os.MkdirAll(dir, 0750); err != nil {
  		return err
  	}
  
  	if err := b.manager.MountVolume(b, dir); err != nil {
  		return err
  	}
  	if !b.readOnly {
  		volume.SetVolumeOwnership(b, fsGroup)
  	}
  	klog.Infof("Portworx Volume %s setup at %s", b.volumeID, dir)
  	return nil
  }
docs: // SetUpAt attaches the disk and bind mounts to the volume path.