Merge commit 'v2.6.38-rc6' into for-2.6.39/core
authorJens Axboe <jaxboe@fusionio.com>
Tue, 1 Mar 2011 20:04:39 +0000 (15:04 -0500)
committerJens Axboe <jaxboe@fusionio.com>
Tue, 1 Mar 2011 20:04:39 +0000 (15:04 -0500)
Conflicts:
block/cfq-iosched.c

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
1  2 
block/blk-core.c
block/cfq-iosched.c
include/linux/blkdev.h
include/linux/elevator.h

Simple merge
@@@ -3681,13 -3705,13 +3705,13 @@@ new_queue
        }
  
        cfqq->allocated[rw]++;
-       atomic_inc(&cfqq->ref);
 -      cfqq->ref++;
 -      rq->elevator_private = cic;
 -      rq->elevator_private2 = cfqq;
 -      rq->elevator_private3 = cfq_ref_get_cfqg(cfqq->cfqg);
  
        spin_unlock_irqrestore(q->queue_lock, flags);
  
++      cfqq->ref++;
 +      rq->elevator_private[0] = cic;
 +      rq->elevator_private[1] = cfqq;
 +      rq->elevator_private[2] = cfq_ref_get_cfqg(cfqq->cfqg);
        return 0;
  
  queue_fail:
@@@ -108,19 -108,14 +108,20 @@@ struct request 
  
        /*
         * Three pointers are available for the IO schedulers, if they need
 -       * more they have to dynamically allocate it.
 +       * more they have to dynamically allocate it.  Flush requests are
 +       * never put on the IO scheduler. So let the flush fields share
 +       * space with the three elevator_private pointers.
         */
 -      void *elevator_private;
 -      void *elevator_private2;
 -      void *elevator_private3;
 +      union {
 +              void *elevator_private[3];
 +              struct {
 +                      unsigned int            seq;
 +                      struct list_head        list;
 +              } flush;
 +      };
  
        struct gendisk *rq_disk;
+       struct hd_struct *part;
        unsigned long start_time;
  #ifdef CONFIG_BLK_CGROUP
        unsigned long long start_time_ns;
Simple merge