From: Bart Samwel Make that the internal value for /proc/sys/vm/laptop_mode is stored as jiffies instead of seconds. Let the sysctl interface do the conversions, instead of doing on-the-fly conversions every time the value is used. Add a description of the fact that laptop_mode doubles as a flag and a timeout to the comment above the laptop_mode variable. Signed-off-by: Bart Samwel Signed-off-by: Andrew Morton --- kernel/sysctl.c | 5 ++--- mm/page-writeback.c | 5 +++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff -puN kernel/sysctl.c~represent-laptop_mode-as-jiffies-internally kernel/sysctl.c --- devel/kernel/sysctl.c~represent-laptop_mode-as-jiffies-internally 2006-03-11 02:46:45.000000000 -0800 +++ devel-akpm/kernel/sysctl.c 2006-03-11 02:46:45.000000000 -0800 @@ -849,9 +849,8 @@ static ctl_table vm_table[] = { .data = &laptop_mode, .maxlen = sizeof(laptop_mode), .mode = 0644, - .proc_handler = &proc_dointvec, - .strategy = &sysctl_intvec, - .extra1 = &zero, + .proc_handler = &proc_dointvec_jiffies, + .strategy = &sysctl_jiffies, }, { .ctl_name = VM_BLOCK_DUMP, diff -puN mm/page-writeback.c~represent-laptop_mode-as-jiffies-internally mm/page-writeback.c --- devel/mm/page-writeback.c~represent-laptop_mode-as-jiffies-internally 2006-03-11 02:46:45.000000000 -0800 +++ devel-akpm/mm/page-writeback.c 2006-03-11 02:46:45.000000000 -0800 @@ -88,7 +88,8 @@ int dirty_expire_interval = 30 * HZ; int block_dump; /* - * Flag that puts the machine in "laptop mode". + * Flag that puts the machine in "laptop mode". Doubles as a timeout in jiffies: + * a full sync is triggered after this time elapses without any disk activity. */ int laptop_mode; @@ -468,7 +469,7 @@ static void laptop_timer_fn(unsigned lon */ void laptop_io_completion(void) { - mod_timer(&laptop_mode_wb_timer, jiffies + laptop_mode * HZ); + mod_timer(&laptop_mode_wb_timer, jiffies + laptop_mode); } /* _