code: func (fr *fileReader) startWalkingDisk() error {
  	fr.log.Debug("Start walking disk", "path", fr.Path)
  	resolvedPath := fr.resolvedPath()
  	if _, err := os.Stat(resolvedPath); err != nil {
  		if os.IsNotExist(err) {
  			return err
  		}
  	}
  
  	folderId, err := getOrCreateFolderId(fr.Cfg, fr.dashboardProvisioningService)
  	if err != nil && err != ErrFolderNameMissing {
  		return err
  	}
  
  	provisionedDashboardRefs, err := getProvisionedDashboardByPath(fr.dashboardProvisioningService, fr.Cfg.Name)
  	if err != nil {
  		return err
  	}
  
  	filesFoundOnDisk := map[string]os.FileInfo{}
  	err = filepath.Walk(resolvedPath, createWalkFn(filesFoundOnDisk))
  	if err != nil {
  		return err
  	}
  
  	fr.handleMissingDashboardFiles(provisionedDashboardRefs, filesFoundOnDisk)
  
  	sanityChecker := newProvisioningSanityChecker(fr.Cfg.Name)
  
  	// save dashboards based on json files
  	for path, fileInfo := range filesFoundOnDisk {
  		provisioningMetadata, err := fr.saveDashboard(path, folderId, fileInfo, provisionedDashboardRefs)
  		sanityChecker.track(provisioningMetadata)
  		if err != nil {
  			fr.log.Error("failed to save dashboard", "error", err)
  		}
  	}
  	sanityChecker.logWarnings(fr.log)
  
  	return nil
  }
docs: // startWalkingDisk traverses the file system for defined path, reads dashboard definition files and applies any change
  // to the database.