code: public void unreserveSlots(TaskType taskType, JobInProgress job) {
      JobID jobId = job.getJobID();
      if (taskType == TaskType.MAP) {
        if (jobForFallowMapSlot == null || 
            !jobForFallowMapSlot.getJobID().equals(jobId)) {
          throw new RuntimeException(trackerName + " already has " + 
                                     "slots reserved for " + 
                                     jobForFallowMapSlot + "; being"  +
                                     " asked to un-reserve for " + jobId);
        }
  
        jobForFallowMapSlot = null;
      } else {
        if (jobForFallowReduceSlot == null || 
            !jobForFallowReduceSlot.getJobID().equals(jobId)) {
          throw new RuntimeException(trackerName + " already has " + 
                                     "slots reserved for " + 
                                     jobForFallowReduceSlot + "; being"  +
                                     " asked to un-reserve for " + jobId);
        }
        
        jobForFallowReduceSlot = null;
      }
      
      job.unreserveTaskTracker(this, taskType);
      LOG.info(trackerName + ": Unreserved " + taskType + " slots for " + jobId);
    }
docs: Free map slots on this <code>TaskTracker</code> which were reserved for
  <code>taskType</code>.
  @param taskType {@link TaskType} of the task
  @param job job whose slots are being un-reserved