Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
Linus Torvalds [Tue, 13 Oct 2009 17:21:33 +0000 (10:21 -0700)]
* 'for-linus' of git://git.kernel.dk/linux-2.6-block:
  cciss: Add cciss_allow_hpsa module parameter
  cciss: Fix multiple calls to pci_release_regions
  blk-settings: fix function parameter kernel-doc notation
  writeback: kill space in debugfs item name
  writeback: account IO throttling wait as iowait
  elv_iosched_store(): fix strstrip() misuse
  cfq-iosched: avoid probable slice overrun when idling
  cfq-iosched: apply bool value where we return 0/1
  cfq-iosched: fix think time allowed for seekers
  cfq-iosched: fix the slice residual sign
  cfq-iosched: abstract out the 'may this cfqq dispatch' logic
  block: use proper BLK_RW_ASYNC in blk_queue_start_tag()
  block: Seperate read and write statistics of in_flight requests v2
  block: get rid of kblock_schedule_delayed_work()
  cfq-iosched: fix possible problem with jiffies wraparound
  cfq-iosched: fix issue with rq-rq merging and fifo list ordering

1  2 
kernel/sched.c

diff --combined kernel/sched.c
@@@ -2515,17 -2515,22 +2515,17 @@@ void sched_fork(struct task_struct *p, 
        __sched_fork(p);
  
        /*
         * Revert to default priority/policy on fork if requested.
         */
        if (unlikely(p->sched_reset_on_fork)) {
 -              if (p->policy == SCHED_FIFO || p->policy == SCHED_RR)
 +              if (p->policy == SCHED_FIFO || p->policy == SCHED_RR) {
                        p->policy = SCHED_NORMAL;
 -
 -              if (p->normal_prio < DEFAULT_PRIO)
 -                      p->prio = DEFAULT_PRIO;
 +                      p->normal_prio = p->static_prio;
 +              }
  
                if (PRIO_TO_NICE(p->static_prio) < 0) {
                        p->static_prio = NICE_TO_PRIO(0);
 +                      p->normal_prio = p->static_prio;
                        set_load_weight(p);
                }
  
                p->sched_reset_on_fork = 0;
        }
  
 +      /*
 +       * Make sure we do not leak PI boosting priority to the child.
 +       */
 +      p->prio = current->normal_prio;
 +
        if (!rt_prio(p->prio))
                p->sched_class = &fair_sched_class;
  
@@@ -2581,6 -2581,8 +2581,6 @@@ void wake_up_new_task(struct task_struc
        BUG_ON(p->state != TASK_RUNNING);
        update_rq_clock(rq);
  
 -      p->prio = effective_prio(p);
 -
        if (!p->sched_class->task_new || !current->se.on_rq) {
                activate_task(rq, p, 0);
        } else {
@@@ -6718,9 -6720,6 +6718,6 @@@ EXPORT_SYMBOL(yield)
  /*
   * This task is about to go to sleep on IO. Increment rq->nr_iowait so
   * that process accounting knows that this is a task in IO wait state.
-  *
-  * But don't do that if it is a deliberate, throttling IO wait (this task
-  * has set its backing_dev_info: the queue against which it should throttle)
   */
  void __sched io_schedule(void)
  {