sched: Prevent balance_push() on remote runqueues
[linux-2.6-microblaze.git] / block / blk-mq-tag.h
index 7d3e6b3..8ed55af 100644 (file)
@@ -20,17 +20,26 @@ struct blk_mq_tags {
        struct request **rqs;
        struct request **static_rqs;
        struct list_head page_list;
+
+       /*
+        * used to clear request reference in rqs[] before freeing one
+        * request pool
+        */
+       spinlock_t lock;
 };
 
 extern struct blk_mq_tags *blk_mq_init_tags(unsigned int nr_tags,
                                        unsigned int reserved_tags,
                                        int node, unsigned int flags);
 extern void blk_mq_free_tags(struct blk_mq_tags *tags, unsigned int flags);
+extern int blk_mq_init_bitmaps(struct sbitmap_queue *bitmap_tags,
+                              struct sbitmap_queue *breserved_tags,
+                              unsigned int queue_depth,
+                              unsigned int reserved,
+                              int node, int alloc_policy);
 
-extern int blk_mq_init_shared_sbitmap(struct blk_mq_tag_set *set,
-                                     unsigned int flags);
+extern int blk_mq_init_shared_sbitmap(struct blk_mq_tag_set *set);
 extern void blk_mq_exit_shared_sbitmap(struct blk_mq_tag_set *set);
-
 extern unsigned int blk_mq_get_tag(struct blk_mq_alloc_data *data);
 extern void blk_mq_put_tag(struct blk_mq_tags *tags, struct blk_mq_ctx *ctx,
                           unsigned int tag);