From: Alexey Dobriyan On every open/close one struct seq_operations leaks. Kudos to /proc/slab_allocators. Signed-off-by: Alexey Dobriyan Acked-by: Ingo Molnar Cc: Signed-off-by: Andrew Morton --- fs/proc/base.c | 2 +- kernel/sched_debug.c | 2 +- kernel/time/timer_list.c | 2 +- kernel/time/timer_stats.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff -puN fs/proc/base.c~fix-leaks-on-proc-schedsched_debugtimer_listtimer_stats fs/proc/base.c --- a/fs/proc/base.c~fix-leaks-on-proc-schedsched_debugtimer_listtimer_stats +++ a/fs/proc/base.c @@ -891,7 +891,7 @@ static const struct file_operations proc .read = seq_read, .write = sched_write, .llseek = seq_lseek, - .release = seq_release, + .release = single_release, }; #endif diff -puN kernel/sched_debug.c~fix-leaks-on-proc-schedsched_debugtimer_listtimer_stats kernel/sched_debug.c --- a/kernel/sched_debug.c~fix-leaks-on-proc-schedsched_debugtimer_listtimer_stats +++ a/kernel/sched_debug.c @@ -200,7 +200,7 @@ static struct file_operations sched_debu .open = sched_debug_open, .read = seq_read, .llseek = seq_lseek, - .release = seq_release, + .release = single_release, }; static int __init init_sched_debug_procfs(void) diff -puN kernel/time/timer_list.c~fix-leaks-on-proc-schedsched_debugtimer_listtimer_stats kernel/time/timer_list.c --- a/kernel/time/timer_list.c~fix-leaks-on-proc-schedsched_debugtimer_listtimer_stats +++ a/kernel/time/timer_list.c @@ -267,7 +267,7 @@ static struct file_operations timer_list .open = timer_list_open, .read = seq_read, .llseek = seq_lseek, - .release = seq_release, + .release = single_release, }; static int __init init_timer_list_procfs(void) diff -puN kernel/time/timer_stats.c~fix-leaks-on-proc-schedsched_debugtimer_listtimer_stats kernel/time/timer_stats.c --- a/kernel/time/timer_stats.c~fix-leaks-on-proc-schedsched_debugtimer_listtimer_stats +++ a/kernel/time/timer_stats.c @@ -399,7 +399,7 @@ static struct file_operations tstats_fop .read = seq_read, .write = tstats_write, .llseek = seq_lseek, - .release = seq_release, + .release = single_release, }; void __init init_timer_stats(void) _