aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2007-05-09 05:33:56 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-09 15:30:51 -0400
commit19a75d83ffeab004cfcfac64024ad3997bac7220 (patch)
tree1a4c3d299527989cde6d87e18dd189cfb35749a8
parenta9df62c7585e6caa1e7d2425b2b14460ec3afc20 (diff)
kblockd: use flush_work
Switch the kblockd flushing from a global flush to a more specific flush_work(). (akpm: bypassed maintainers, sorry. There are other patches which depend on this) Cc: "Maciej W. Rozycki" <macro@linux-mips.org> Cc: David Howells <dhowells@redhat.com> Cc: Jens Axboe <axboe@suse.de> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Cc: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--block/as-iosched.c2
-rw-r--r--block/ll_rw_blk.c7
-rw-r--r--include/linux/blkdev.h2
3 files changed, 5 insertions, 6 deletions
diff --git a/block/as-iosched.c b/block/as-iosched.c
index 640aa839d63f..109e91b91ffa 100644
--- a/block/as-iosched.c
+++ b/block/as-iosched.c
@@ -1306,7 +1306,7 @@ static void as_exit_queue(elevator_t *e)
1306 struct as_data *ad = e->elevator_data; 1306 struct as_data *ad = e->elevator_data;
1307 1307
1308 del_timer_sync(&ad->antic_timer); 1308 del_timer_sync(&ad->antic_timer);
1309 kblockd_flush(); 1309 kblockd_flush_work(&ad->antic_work);
1310 1310
1311 BUG_ON(!list_empty(&ad->fifo_list[REQ_SYNC])); 1311 BUG_ON(!list_empty(&ad->fifo_list[REQ_SYNC]));
1312 BUG_ON(!list_empty(&ad->fifo_list[REQ_ASYNC])); 1312 BUG_ON(!list_empty(&ad->fifo_list[REQ_ASYNC]));
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index d99d402953a3..c059767c552c 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -1712,7 +1712,6 @@ EXPORT_SYMBOL(blk_stop_queue);
1712void blk_sync_queue(struct request_queue *q) 1712void blk_sync_queue(struct request_queue *q)
1713{ 1713{
1714 del_timer_sync(&q->unplug_timer); 1714 del_timer_sync(&q->unplug_timer);
1715 kblockd_flush();
1716} 1715}
1717EXPORT_SYMBOL(blk_sync_queue); 1716EXPORT_SYMBOL(blk_sync_queue);
1718 1717
@@ -3632,11 +3631,11 @@ int kblockd_schedule_work(struct work_struct *work)
3632 3631
3633EXPORT_SYMBOL(kblockd_schedule_work); 3632EXPORT_SYMBOL(kblockd_schedule_work);
3634 3633
3635void kblockd_flush(void) 3634void kblockd_flush_work(struct work_struct *work)
3636{ 3635{
3637 flush_workqueue(kblockd_workqueue); 3636 flush_work(kblockd_workqueue, work);
3638} 3637}
3639EXPORT_SYMBOL(kblockd_flush); 3638EXPORT_SYMBOL(kblockd_flush_work);
3640 3639
3641int __init blk_dev_init(void) 3640int __init blk_dev_init(void)
3642{ 3641{
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index a686eabe22d6..db5b00a792f5 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -854,7 +854,7 @@ static inline void put_dev_sector(Sector p)
854 854
855struct work_struct; 855struct work_struct;
856int kblockd_schedule_work(struct work_struct *work); 856int kblockd_schedule_work(struct work_struct *work);
857void kblockd_flush(void); 857void kblockd_flush_work(struct work_struct *work);
858 858
859#define MODULE_ALIAS_BLOCKDEV(major,minor) \ 859#define MODULE_ALIAS_BLOCKDEV(major,minor) \
860 MODULE_ALIAS("block-major-" __stringify(major) "-" __stringify(minor)) 860 MODULE_ALIAS("block-major-" __stringify(major) "-" __stringify(minor))