Merge branch 'for-linus' into for-3.1/core
Jens Axboe [Fri, 1 Jul 2011 14:17:13 +0000 (16:17 +0200)]
Conflicts:
block/blk-throttle.c
block/cfq-iosched.c

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>

block/blk-ioc.c
block/blk-throttle.c
block/cfq-iosched.c
block/deadline-iosched.c
block/elevator.c
block/genhd.c
fs/partitions/check.c
include/linux/blkdev.h
include/linux/elevator.h

index 342eae9..6f9bbd9 100644 (file)
@@ -82,26 +82,26 @@ void exit_io_context(struct task_struct *task)
 
 struct io_context *alloc_io_context(gfp_t gfp_flags, int node)
 {
-       struct io_context *ret;
+       struct io_context *ioc;
 
-       ret = kmem_cache_alloc_node(iocontext_cachep, gfp_flags, node);
-       if (ret) {
-               atomic_long_set(&ret->refcount, 1);
-               atomic_set(&ret->nr_tasks, 1);
-               spin_lock_init(&ret->lock);
-               ret->ioprio_changed = 0;
-               ret->ioprio = 0;
-               ret->last_waited = 0; /* doesn't matter... */
-               ret->nr_batch_requests = 0; /* because this is 0 */
-               INIT_RADIX_TREE(&ret->radix_root, GFP_ATOMIC | __GFP_HIGH);
-               INIT_HLIST_HEAD(&ret->cic_list);
-               ret->ioc_data = NULL;
+       ioc = kmem_cache_alloc_node(iocontext_cachep, gfp_flags, node);
+       if (ioc) {
+               atomic_long_set(&ioc->refcount, 1);
+               atomic_set(&ioc->nr_tasks, 1);
+               spin_lock_init(&ioc->lock);
+               ioc->ioprio_changed = 0;
+               ioc->ioprio = 0;
+               ioc->last_waited = 0; /* doesn't matter... */
+               ioc->nr_batch_requests = 0; /* because this is 0 */
+               INIT_RADIX_TREE(&ioc->radix_root, GFP_ATOMIC | __GFP_HIGH);
+               INIT_HLIST_HEAD(&ioc->cic_list);
+               ioc->ioc_data = NULL;
 #if defined(CONFIG_BLK_CGROUP) || defined(CONFIG_BLK_CGROUP_MODULE)
-               ret->cgroup_changed = 0;
+               ioc->cgroup_changed = 0;
 #endif
        }
 
-       return ret;
+       return ioc;
 }
 
 /*
@@ -139,19 +139,19 @@ struct io_context *current_io_context(gfp_t gfp_flags, int node)
  */
 struct io_context *get_io_context(gfp_t gfp_flags, int node)
 {
-       struct io_context *ret = NULL;
+       struct io_context *ioc = NULL;
 
        /*
         * Check for unlikely race with exiting task. ioc ref count is
         * zero when ioc is being detached.
         */
        do {
-               ret = current_io_context(gfp_flags, node);
-               if (unlikely(!ret))
+               ioc = current_io_context(gfp_flags, node);
+               if (unlikely(!ioc))
                        break;
-       } while (!atomic_long_inc_not_zero(&ret->refcount));
+       } while (!atomic_long_inc_not_zero(&ioc->refcount));
 
-       return ret;
+       return ioc;
 }
 EXPORT_SYMBOL(get_io_context);
 
index 3689f83..f6a7941 100644 (file)
@@ -142,9 +142,9 @@ static inline struct throtl_grp *tg_of_blkg(struct blkio_group *blkg)
        return NULL;
 }
 
-static inline int total_nr_queued(struct throtl_data *td)
+static inline unsigned int total_nr_queued(struct throtl_data *td)
 {
-       return (td->nr_queued[0] + td->nr_queued[1]);
+       return td->nr_queued[0] + td->nr_queued[1];
 }
 
 static inline struct throtl_grp *throtl_ref_get_tg(struct throtl_grp *tg)
@@ -927,7 +927,7 @@ static int throtl_dispatch(struct request_queue *q)
 
        bio_list_init(&bio_list_on_stack);
 
-       throtl_log(td, "dispatch nr_queued=%d read=%u write=%u",
+       throtl_log(td, "dispatch nr_queued=%u read=%u write=%u",
                        total_nr_queued(td), td->nr_queued[READ],
                        td->nr_queued[WRITE]);
 
@@ -970,7 +970,7 @@ throtl_schedule_delayed_work(struct throtl_data *td, unsigned long delay)
        struct delayed_work *dwork = &td->throtl_work;
 
        /* schedule work if limits changed even if no bio is queued */
-       if (total_nr_queued(td) > 0 || td->limits_changed) {
+       if (total_nr_queued(td) || td->limits_changed) {
                /*
                 * We might have a work scheduled to be executed in future.
                 * Cancel that and schedule a new one.
index ae21919..b2e1c75 100644 (file)
@@ -1005,8 +1005,8 @@ static inline struct cfq_group *cfqg_of_blkg(struct blkio_group *blkg)
        return NULL;
 }
 
-void cfq_update_blkio_group_weight(void *key, struct blkio_group *blkg,
-                                       unsigned int weight)
+static void cfq_update_blkio_group_weight(void *key, struct blkio_group *blkg,
+                                         unsigned int weight)
 {
        struct cfq_group *cfqg = cfqg_of_blkg(blkg);
        cfqg->new_weight = weight;
@@ -1235,7 +1235,7 @@ static void cfq_release_cfq_groups(struct cfq_data *cfqd)
  * it should not be NULL as even if elevator was exiting, cgroup deltion
  * path got to it first.
  */
-void cfq_unlink_blkio_group(void *key, struct blkio_group *blkg)
+static void cfq_unlink_blkio_group(void *key, struct blkio_group *blkg)
 {
        unsigned long  flags;
        struct cfq_data *cfqd = key;
@@ -1502,16 +1502,11 @@ static void cfq_add_rq_rb(struct request *rq)
 {
        struct cfq_queue *cfqq = RQ_CFQQ(rq);
        struct cfq_data *cfqd = cfqq->cfqd;
-       struct request *__alias, *prev;
+       struct request *prev;
 
        cfqq->queued[rq_is_sync(rq)]++;
 
-       /*
-        * looks a little odd, but the first insert might return an alias.
-        * if that happens, put the alias on the dispatch list
-        */
-       while ((__alias = elv_rb_add(&cfqq->sort_list, rq)) != NULL)
-               cfq_dispatch_insert(cfqd->queue, __alias);
+       elv_rb_add(&cfqq->sort_list, rq);
 
        if (!cfq_cfqq_on_rr(cfqq))
                cfq_add_cfqq_rr(cfqd, cfqq);
index 5139c0e..c644137 100644 (file)
@@ -77,10 +77,8 @@ static void
 deadline_add_rq_rb(struct deadline_data *dd, struct request *rq)
 {
        struct rb_root *root = deadline_rb_root(dd, rq);
-       struct request *__alias;
 
-       while (unlikely(__alias = elv_rb_add(root, rq)))
-               deadline_move_request(dd, __alias);
+       elv_rb_add(root, rq);
 }
 
 static inline void
index b0b38ce..a3b64bc 100644 (file)
@@ -353,7 +353,7 @@ static struct request *elv_rqhash_find(struct request_queue *q, sector_t offset)
  * RB-tree support functions for inserting/lookup/removal of requests
  * in a sorted RB tree.
  */
-struct request *elv_rb_add(struct rb_root *root, struct request *rq)
+void elv_rb_add(struct rb_root *root, struct request *rq)
 {
        struct rb_node **p = &root->rb_node;
        struct rb_node *parent = NULL;
@@ -365,15 +365,12 @@ struct request *elv_rb_add(struct rb_root *root, struct request *rq)
 
                if (blk_rq_pos(rq) < blk_rq_pos(__rq))
                        p = &(*p)->rb_left;
-               else if (blk_rq_pos(rq) > blk_rq_pos(__rq))
+               else if (blk_rq_pos(rq) >= blk_rq_pos(__rq))
                        p = &(*p)->rb_right;
-               else
-                       return __rq;
        }
 
        rb_link_node(&rq->rb_node, parent, p);
        rb_insert_color(&rq->rb_node, root);
-       return NULL;
 }
 EXPORT_SYMBOL(elv_rb_add);
 
index 3608289..82d97c3 100644 (file)
@@ -602,7 +602,7 @@ void add_disk(struct gendisk *disk)
        disk->major = MAJOR(devt);
        disk->first_minor = MINOR(devt);
 
-       /* Register BDI before referencing it from bdev */ 
+       /* Register BDI before referencing it from bdev */
        bdi = &disk->queue->backing_dev_info;
        bdi_register_dev(bdi, disk_devt(disk));
 
@@ -1148,7 +1148,7 @@ static int diskstats_show(struct seq_file *seqf, void *v)
                                "wsect wuse running use aveq"
                                "\n\n");
        */
+
        disk_part_iter_init(&piter, gp, DISK_PITER_INCL_EMPTY_PART0);
        while ((hd = disk_part_iter_next(&piter))) {
                cpu = part_stat_lock();
@@ -1172,7 +1172,7 @@ static int diskstats_show(struct seq_file *seqf, void *v)
                        );
        }
        disk_part_iter_exit(&piter);
+
        return 0;
 }
 
index d545e97..e3c63d1 100644 (file)
@@ -237,22 +237,22 @@ ssize_t part_size_show(struct device *dev,
        return sprintf(buf, "%llu\n",(unsigned long long)p->nr_sects);
 }
 
-ssize_t part_ro_show(struct device *dev,
-                      struct device_attribute *attr, char *buf)
+static ssize_t part_ro_show(struct device *dev,
+                           struct device_attribute *attr, char *buf)
 {
        struct hd_struct *p = dev_to_part(dev);
        return sprintf(buf, "%d\n", p->policy ? 1 : 0);
 }
 
-ssize_t part_alignment_offset_show(struct device *dev,
-                                  struct device_attribute *attr, char *buf)
+static ssize_t part_alignment_offset_show(struct device *dev,
+                                         struct device_attribute *attr, char *buf)
 {
        struct hd_struct *p = dev_to_part(dev);
        return sprintf(buf, "%llu\n", (unsigned long long)p->alignment_offset);
 }
 
-ssize_t part_discard_alignment_show(struct device *dev,
-                                  struct device_attribute *attr, char *buf)
+static ssize_t part_discard_alignment_show(struct device *dev,
+                                          struct device_attribute *attr, char *buf)
 {
        struct hd_struct *p = dev_to_part(dev);
        return sprintf(buf, "%u\n", p->discard_alignment);
index 1a23722..36f2e2b 100644 (file)
@@ -73,7 +73,7 @@ enum rq_cmd_type_bits {
 
 /*
  * try to put the fields that are referenced together in the same cacheline.
- * if you modify this structure, be sure to check block/blk-core.c:rq_init()
+ * if you modify this structure, be sure to check block/blk-core.c:blk_rq_init()
  * as well!
  */
 struct request {
index 21a8ebf..d800d51 100644 (file)
@@ -146,7 +146,7 @@ extern struct request *elv_rb_latter_request(struct request_queue *, struct requ
 /*
  * rb support functions.
  */
-extern struct request *elv_rb_add(struct rb_root *, struct request *);
+extern void elv_rb_add(struct rb_root *, struct request *);
 extern void elv_rb_del(struct rb_root *, struct request *);
 extern struct request *elv_rb_find(struct rb_root *, sector_t);