public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] cfq_exit_queue() should cancel cfq_data->unplug_work
@ 2007-10-20 12:20 Oleg Nesterov
  0 siblings, 0 replies; only message in thread
From: Oleg Nesterov @ 2007-10-20 12:20 UTC (permalink / raw)
  To: Andrew Morton, Jens Axboe; +Cc: Nick, Randy Dunlap, linux-kernel

(untested, needs an explicit ack/nack from maintainer)

Spotted by Nick <gentuu@gmail.com>, perhaps explains the first trace in
http://bugzilla.kernel.org/show_bug.cgi?id=9180.

cfq_exit_queue() should cancel cfqd->unplug_work before freeing cfqd.
blk_sync_queue() seems unneeded, removed.

Q: why cfq_exit_queue() calls cfq_shutdown_timer_wq() twice?

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>

--- K/block/cfq-iosched.c~1_cfq	2007-08-09 19:59:26.000000000 +0400
+++ K/block/cfq-iosched.c	2007-10-20 15:48:35.000000000 +0400
@@ -2053,7 +2053,7 @@ static void cfq_shutdown_timer_wq(struct
 {
 	del_timer_sync(&cfqd->idle_slice_timer);
 	del_timer_sync(&cfqd->idle_class_timer);
-	blk_sync_queue(cfqd->queue);
+	kblockd_flush_work(&cfqd->unplug_work);
 }
 
 static void cfq_put_async_queues(struct cfq_data *cfqd)


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-10-20 12:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-20 12:20 [PATCH 1/2] cfq_exit_queue() should cancel cfq_data->unplug_work Oleg Nesterov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox