public boolean abandonBlock ( Block b , String src , String holder ) throws IOException { writeLock ( ) ; try { // // Remove the block from the pending creates list // if ( NameNode . stateChangeLog . isDebugEnabled ( ) ) { NameNode . stateChangeLog . debug ( "BLOCK* NameSystem.abandonBlock: " + b + "of file " + src ) ; } if ( isInSafeMode ( ) ) { throw new SafeModeException ( "Cannot abandon block " + b + " for fle" + src , safeMode ) ; } INodeFileUnderConstruction file = checkLease ( src , holder ) ; dir . removeBlock ( src , file , b ) ; if ( NameNode . stateChangeLog . isDebugEnabled ( ) ) { NameNode . stateChangeLog . debug ( "BLOCK* NameSystem.abandonBlock: " + b + " is removed from pendingCreates" ) ; } return true ; } finally { writeUnlock ( ) ; } }
The client would like to let go of the given block