---

 25-akpm/mm/page-writeback.c   |   25 ++++++++++---------------
 Documentation/laptop-mode.txt |    0 
 drivers/block/ll_rw_blk.c     |    0 
 fs/buffer.c                   |    0 
 include/linux/sysctl.h        |    0 
 include/linux/writeback.h     |    0 
 kernel/sysctl.c               |    0 
 7 files changed, 10 insertions(+), 15 deletions(-)

diff -puN Documentation/laptop-mode.txt~laptop-mode-2-tweaks Documentation/laptop-mode.txt
diff -puN drivers/block/ll_rw_blk.c~laptop-mode-2-tweaks drivers/block/ll_rw_blk.c
diff -puN fs/buffer.c~laptop-mode-2-tweaks fs/buffer.c
diff -puN include/linux/sysctl.h~laptop-mode-2-tweaks include/linux/sysctl.h
diff -puN include/linux/writeback.h~laptop-mode-2-tweaks include/linux/writeback.h
diff -puN kernel/sysctl.c~laptop-mode-2-tweaks kernel/sysctl.c
diff -puN mm/page-writeback.c~laptop-mode-2-tweaks mm/page-writeback.c
--- 25/mm/page-writeback.c~laptop-mode-2-tweaks	Thu Feb 12 15:43:08 2004
+++ 25-akpm/mm/page-writeback.c	Thu Feb 12 15:50:23 2004
@@ -393,14 +393,20 @@ int dirty_writeback_centisecs_handler(ct
 	return 0;
 }
 
-static struct timer_list laptop_mode_wb_timer;
-
-static void laptop_mode_wb_timer_fn(unsigned long unused)
+static void wb_timer_fn(unsigned long unused)
 {
-	mod_timer(&wb_timer, jiffies);
+	if (pdflush_operation(wb_kupdate, 0) < 0)
+		mod_timer(&wb_timer, jiffies + HZ); /* delay 1 second */
+
 }
 
 /*
+ * Both timers share the same handler
+ */
+static struct timer_list laptop_mode_wb_timer =
+			TIMER_INITIALIZER(wb_timer_fn, 0, 0);
+
+/*
  * We've spun up the disk and we're in laptop mode: schedule writeback
  * of all dirty data in 5 seconds.
  *
@@ -415,13 +421,6 @@ void disk_is_spun_up(int postpone_writeb
 }
 
 
-static void wb_timer_fn(unsigned long unused)
-{
-	if (pdflush_operation(wb_kupdate, 0) < 0)
-		mod_timer(&wb_timer, jiffies + HZ); /* delay 1 second */
-
-}
-
 /*
  * If ratelimit_pages is too high then we can get into dirty-data overload
  * if a large number of processes all perform writes at the same time.
@@ -487,10 +486,6 @@ void __init page_writeback_init(void)
 	wb_timer.function = wb_timer_fn;
 	add_timer(&wb_timer);
 
-	init_timer(&laptop_mode_wb_timer);
-	laptop_mode_wb_timer.data = 0;
-	laptop_mode_wb_timer.function = laptop_mode_wb_timer_fn;
-
 	set_ratelimit();
 	register_cpu_notifier(&ratelimit_nb);
 }

_