code: synchronized boolean remove(BlockInfo blockInfo, int priLevel) {
      INodeFile fileINode = blockInfo.getINode();
      if (priLevel == QUEUE_WITH_CORRUPT_BLOCKS && fileINode != null &&
          fileINode.getStorageType().equals(StorageType.RAID_STORAGE)) {
        RaidCodec codec = ((INodeRaidStorage) fileINode.getStorage()).getCodec();
        return raidQueue.remove(blockInfo, codec);
      } 
      
      if(priLevel >= 0 && priLevel < LEVEL 
          && priorityQueues.get(priLevel).remove(blockInfo)) {
        if (NameNode.stateChangeLog.isDebugEnabled()) {
          NameNode.stateChangeLog.debug(
                                        "BLOCK* NameSystem.UnderReplicationBlock.remove: "
                                        + "Removing block " + blockInfo
                                        + " from priority queue "+ priLevel);
        }
        return true;
      } else {
        for(int i=0; i<LEVEL; i++) {
          if(i!=priLevel && priorityQueues.get(i).remove(blockInfo)) {
            if (NameNode.stateChangeLog.isDebugEnabled()) {
              NameNode.stateChangeLog.debug(
                                            "BLOCK* NameSystem.UnderReplicationBlock.remove: "
                                            + "Removing block " + blockInfo
                                            + " from priority queue "+ i);
            }
            return true;
          }
        }
      }
      return false;
    }
docs: /* remove a block from a under replication queue given a priority