void removeBlock(Block block) {
    BlockInfo blockInfo = removeBlockFromMap(block);
    if (blockInfo == null)
      return;
    blockInfo.inode = null;
    for(int idx = blockInfo.numNodes()-1; idx >= 0; idx--) {
      DatanodeDescriptor dn = blockInfo.getDatanode(idx);
      dn.removeBlock(blockInfo); // remove from the list and wipe the location
    }
  }
void removeBlock ( Block block ) { BlockInfo blockInfo = removeBlockFromMap ( block ) ; if ( blockInfo == null ) return ; blockInfo . inode = null ; for ( int idx = blockInfo . numNodes ( ) - 1 ; idx >= 0 ; idx -- ) { DatanodeDescriptor dn = blockInfo . getDatanode ( idx ) ; dn . removeBlock ( blockInfo ) ; } }
Remove the block from the block map;
remove it from all data-node lists it belongs to;
and remove all data-node locations associated with the block.