code: Map<FSVolume, List<Map<Block, DatanodeBlockInfo>>> getBlockCrcPerVolume(
        List<FSVolume> volumes) {
      Map<FSVolume, List<Map<Block, DatanodeBlockInfo>>> retMap =
          new HashMap<FSVolume, List<Map<Block, DatanodeBlockInfo>>>();
      for (FSVolume volume : volumes) {
        List<Map<Block, DatanodeBlockInfo>> newSubMap = new ArrayList<Map<Block, DatanodeBlockInfo>>(
            numBucket);
        for (int i = 0; i < numBucket; i++) {
          newSubMap.add(new HashMap<Block, DatanodeBlockInfo>());
        }
        retMap.put(volume, newSubMap);
      }
      for (BlockBucket bb : blockBuckets) {
        bb.getBlockCrcPerVolume(retMap);
      }
      return retMap;
    }
docs: get a list of block info with CRC information per FS volume.
  
  @param volumes
  Volumes are interested in get the list
  @return a map from FSVolume to buckets -> (Block -> DatanodeBlockInfo) in
  the volume and has CRC information. The first level value is a
  list, each one on the list is for a bucket. The order on the list
  is the bucket ID. The third level is a map from block to datablock
  info.