/** * Make a copy of the block if this block is linked to an existing snapshot. This ensures that * modifying this block does not modify data in any existing snapshots. * * @param block Block * @param numLinks Detach if the number of links exceed this value * @throws IOException * @return - true if the specified block was detached */ public boolean detachBlock(Block block, int numLinks) throws IOException { DatanodeBlockInfo info = null; synchronized (this) { info = volumeMap.get(block); } return info.detachBlock(block, numLinks); }