code: boolean removeNode(Block b, DatanodeDescriptor node) {
      BlockInfo info = blocks.get(b);
      if (info == null)
        return false;
  
      // remove block from the data-node list and the node from the block info
      boolean removed = node.removeBlock(info);
  
      if (info.getDatanode(0) == null     // no datanodes left
                && info.inode == null) {  // does not belong to a file
        removeBlockFromMap(b); // remove block from the map
      }
      return removed;
    }
docs: Remove data-node reference from the block.
  Remove the block from the block map
  only if it does not belong to any file and data-nodes.