--- 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); } _