X-Git-Url: http://git.rot13.org/?p=powerpc.git;a=blobdiff_plain;f=block%2Fll_rw_blk.c;h=17e18897342841887ec25b45585cfe49478bf77a;hp=f294f1538f1ee123832e90fe5f86d8c6c90ff137;hb=9a9136e270af14da506f66bcafcc506b86a86498;hpb=7bb2acb76e8168ca5d0bde5a5a56585a11b3525a diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c index f294f1538f..17e1889734 100644 --- a/block/ll_rw_blk.c +++ b/block/ll_rw_blk.c @@ -1712,7 +1712,6 @@ EXPORT_SYMBOL(blk_stop_queue); void blk_sync_queue(struct request_queue *q) { del_timer_sync(&q->unplug_timer); - kblockd_flush(); } EXPORT_SYMBOL(blk_sync_queue); @@ -3508,7 +3507,7 @@ static int blk_cpu_notify(struct notifier_block *self, unsigned long action, * If a CPU goes away, splice its entries to the current CPU * and trigger a run of the softirq */ - if (action == CPU_DEAD) { + if (action == CPU_DEAD || action == CPU_DEAD_FROZEN) { int cpu = (unsigned long) hcpu; local_irq_disable(); @@ -3632,11 +3631,11 @@ int kblockd_schedule_work(struct work_struct *work) EXPORT_SYMBOL(kblockd_schedule_work); -void kblockd_flush(void) +void kblockd_flush_work(struct work_struct *work) { - flush_workqueue(kblockd_workqueue); + cancel_work_sync(work); } -EXPORT_SYMBOL(kblockd_flush); +EXPORT_SYMBOL(kblockd_flush_work); int __init blk_dev_init(void) {