aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/blkdev.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-03-04 13:09:02 -0500
committerTejun Heo <tj@kernel.org>2011-03-04 13:09:02 -0500
commite83a46bbb1d4c03defd733a64b727632a40059ad (patch)
treec4bc4822b2d3af1bf38095f531adc0a2aac054a5 /include/linux/blkdev.h
parentda527770007fce8e4541947d47918248286da875 (diff)
parentfd51469fb68b987032e46297e0a4fe9020063c20 (diff)
Merge branch 'for-linus' of ../linux-2.6-block into block-for-2.6.39/core
This merge creates two set of conflicts. One is simple context conflicts caused by removal of throtl_scheduled_delayed_work() in for-linus and removal of throtl_shutdown_timer_wq() in for-2.6.39/core. The other is caused by commit 255bb490c8 (block: blk-flush shouldn't call directly into q->request_fn() __blk_run_queue()) in for-linus crashing with FLUSH reimplementation in for-2.6.39/core. The conflict isn't trivial but the resolution is straight-forward. * __blk_run_queue() calls in flush_end_io() and flush_data_end_io() should be called with @force_kblockd set to %true. * elv_insert() in blk_kick_flush() should use %ELEVATOR_INSERT_REQUEUE. Both changes are to avoid invoking ->request_fn() directly from request completion path and closely match the changes in the commit 255bb490c8. Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r--include/linux/blkdev.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 23fb92506c31..13b75ca62181 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -706,7 +706,7 @@ extern void blk_start_queue(struct request_queue *q);
706extern void blk_stop_queue(struct request_queue *q); 706extern void blk_stop_queue(struct request_queue *q);
707extern void blk_sync_queue(struct request_queue *q); 707extern void blk_sync_queue(struct request_queue *q);
708extern void __blk_stop_queue(struct request_queue *q); 708extern void __blk_stop_queue(struct request_queue *q);
709extern void __blk_run_queue(struct request_queue *); 709extern void __blk_run_queue(struct request_queue *q, bool force_kblockd);
710extern void blk_run_queue(struct request_queue *); 710extern void blk_run_queue(struct request_queue *);
711extern int blk_rq_map_user(struct request_queue *, struct request *, 711extern int blk_rq_map_user(struct request_queue *, struct request *,
712 struct rq_map_data *, void __user *, unsigned long, 712 struct rq_map_data *, void __user *, unsigned long,
@@ -1095,7 +1095,6 @@ static inline void put_dev_sector(Sector p)
1095 1095
1096struct work_struct; 1096struct work_struct;
1097int kblockd_schedule_work(struct request_queue *q, struct work_struct *work); 1097int kblockd_schedule_work(struct request_queue *q, struct work_struct *work);
1098int kblockd_schedule_delayed_work(struct request_queue *q, struct delayed_work *dwork, unsigned long delay);
1099 1098
1100#ifdef CONFIG_BLK_CGROUP 1099#ifdef CONFIG_BLK_CGROUP
1101/* 1100/*
@@ -1143,7 +1142,6 @@ static inline uint64_t rq_io_start_time_ns(struct request *req)
1143extern int blk_throtl_init(struct request_queue *q); 1142extern int blk_throtl_init(struct request_queue *q);
1144extern void blk_throtl_exit(struct request_queue *q); 1143extern void blk_throtl_exit(struct request_queue *q);
1145extern int blk_throtl_bio(struct request_queue *q, struct bio **bio); 1144extern int blk_throtl_bio(struct request_queue *q, struct bio **bio);
1146extern void throtl_schedule_delayed_work(struct request_queue *q, unsigned long delay);
1147#else /* CONFIG_BLK_DEV_THROTTLING */ 1145#else /* CONFIG_BLK_DEV_THROTTLING */
1148static inline int blk_throtl_bio(struct request_queue *q, struct bio **bio) 1146static inline int blk_throtl_bio(struct request_queue *q, struct bio **bio)
1149{ 1147{
@@ -1152,7 +1150,6 @@ static inline int blk_throtl_bio(struct request_queue *q, struct bio **bio)
1152 1150
1153static inline int blk_throtl_init(struct request_queue *q) { return 0; } 1151static inline int blk_throtl_init(struct request_queue *q) { return 0; }
1154static inline int blk_throtl_exit(struct request_queue *q) { return 0; } 1152static inline int blk_throtl_exit(struct request_queue *q) { return 0; }
1155static inline void throtl_schedule_delayed_work(struct request_queue *q, unsigned long delay) {}
1156#endif /* CONFIG_BLK_DEV_THROTTLING */ 1153#endif /* CONFIG_BLK_DEV_THROTTLING */
1157 1154
1158#define MODULE_ALIAS_BLOCKDEV(major,minor) \ 1155#define MODULE_ALIAS_BLOCKDEV(major,minor) \