code: void rollFSImage(CheckpointSignature sig) throws IOException {
      long start = System.nanoTime();
      sig.validateStorageInfo(this.storage);
  
      saveDigestAndRenameCheckpointImage(sig.mostRecentCheckpointTxId,
          sig.imageDigest);
  
      long rollTime = DFSUtil.getElapsedTimeMicroSeconds(start);
      if (metrics != null) {
        metrics.rollFsImageTime.inc(rollTime);
      }
    }
docs: End checkpoint.
  Validate the current storage info with the given signature.
  
  @param sig to validate the current storage info against
  @throws IOException if the checkpoint fields are inconsistent