void removePathAndBlocks(String src, List<Block> blocks) throws IOException { leaseManager.removeLeaseWithPrefixPath(src); for(Block b : blocks) { blocksMap.removeINode(b); corruptReplicas.removeFromCorruptReplicasMap(b); addToInvalidates(b); } }
/** * Remove a block to the file. */ boolean removeBlock(String path, INodeFileUnderConstruction fileNode, Block block) throws IOException { waitForReady(); synchronized (rootDir) { // modify file-> block and blocksMap fileNode.removeBlock(block); namesystem.blocksMap.removeINode(block); // If block is removed from blocksMap remove it from corruptReplicasMap namesystem.corruptReplicas.removeFromCorruptReplicasMap(block); // write modified block locations to log fsImage.getEditLog().logOpenFile(path, fileNode); NameNode.stateChangeLog.debug("DIR* FSDirectory.addFile: " +path+" with "+block +" block is added to the file system"); } return true; }