code: 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();
      }
    }
docs: The client would like to let go of the given block