diff options
author | Alexey Dobriyan <adobriyan@sw.ru> | 2007-07-31 03:38:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-31 18:39:40 -0400 |
commit | 5ea473a1dfeca2ee38c5dd458c1174d129e6b64e (patch) | |
tree | 7ed66c900149f452ebeda379ce3264da9515b9dd | |
parent | ff8e210a9550ad760a62e9803938cd04f9fb0851 (diff) |
Fix leaks on /proc/{*/sched,sched_debug,timer_list,timer_stats}
On every open/close one struct seq_operations leaks.
Kudos to /proc/slab_allocators.
Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | fs/proc/base.c | 2 | ||||
-rw-r--r-- | kernel/sched_debug.c | 2 | ||||
-rw-r--r-- | kernel/time/timer_list.c | 2 | ||||
-rw-r--r-- | kernel/time/timer_stats.c | 2 |
4 files changed, 4 insertions, 4 deletions
diff --git a/fs/proc/base.c b/fs/proc/base.c index 3c77d5a64e7c..19489b0d5554 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
@@ -927,7 +927,7 @@ static const struct file_operations proc_pid_sched_operations = { | |||
927 | .read = seq_read, | 927 | .read = seq_read, |
928 | .write = sched_write, | 928 | .write = sched_write, |
929 | .llseek = seq_lseek, | 929 | .llseek = seq_lseek, |
930 | .release = seq_release, | 930 | .release = single_release, |
931 | }; | 931 | }; |
932 | 932 | ||
933 | #endif | 933 | #endif |
diff --git a/kernel/sched_debug.c b/kernel/sched_debug.c index 42970f723a97..0eca442b7792 100644 --- a/kernel/sched_debug.c +++ b/kernel/sched_debug.c | |||
@@ -200,7 +200,7 @@ static struct file_operations sched_debug_fops = { | |||
200 | .open = sched_debug_open, | 200 | .open = sched_debug_open, |
201 | .read = seq_read, | 201 | .read = seq_read, |
202 | .llseek = seq_lseek, | 202 | .llseek = seq_lseek, |
203 | .release = seq_release, | 203 | .release = single_release, |
204 | }; | 204 | }; |
205 | 205 | ||
206 | static int __init init_sched_debug_procfs(void) | 206 | static int __init init_sched_debug_procfs(void) |
diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c index e5edc3a22a08..fdb2e03d4fe0 100644 --- a/kernel/time/timer_list.c +++ b/kernel/time/timer_list.c | |||
@@ -267,7 +267,7 @@ static struct file_operations timer_list_fops = { | |||
267 | .open = timer_list_open, | 267 | .open = timer_list_open, |
268 | .read = seq_read, | 268 | .read = seq_read, |
269 | .llseek = seq_lseek, | 269 | .llseek = seq_lseek, |
270 | .release = seq_release, | 270 | .release = single_release, |
271 | }; | 271 | }; |
272 | 272 | ||
273 | static int __init init_timer_list_procfs(void) | 273 | static int __init init_timer_list_procfs(void) |
diff --git a/kernel/time/timer_stats.c b/kernel/time/timer_stats.c index 8ed62fda16c6..3c38fb5eae1b 100644 --- a/kernel/time/timer_stats.c +++ b/kernel/time/timer_stats.c | |||
@@ -399,7 +399,7 @@ static struct file_operations tstats_fops = { | |||
399 | .read = seq_read, | 399 | .read = seq_read, |
400 | .write = tstats_write, | 400 | .write = tstats_write, |
401 | .llseek = seq_lseek, | 401 | .llseek = seq_lseek, |
402 | .release = seq_release, | 402 | .release = single_release, |
403 | }; | 403 | }; |
404 | 404 | ||
405 | void __init init_timer_stats(void) | 405 | void __init init_timer_stats(void) |