code: synchronized void reportErrorsOnDirectories(List<StorageDirectory> sds,
        FSImage image) throws IOException {
      for (StorageDirectory sd : sds) {
        reportErrorsOnDirectory(sd, image);
      }
      
      // check image managers (this will update image metrics)
      if (image != null) {
        image.checkImageManagers();
      }
      
      // only check if something was wrong
      if(!sds.isEmpty()) {
        if (this.getNumStorageDirs() == 0)  
          throw new IOException("No more storage directories left");
        
        // check image directories, edits are checked withing FSEditLog.checkJournals
        if (getNumStorageDirs(NameNodeDirType.IMAGE) == 0)
          throw new IOException("No more image storage directories left");
      }
    }
docs: Marks a list of directories as having experienced an error.
  
  @param sds A list of storage directories to mark as errored.
  @throws IOException