aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/blktrace.c
diff options
context:
space:
mode:
authorStefan Raspl <raspl@linux.vnet.ibm.com>2009-05-19 03:59:08 -0400
committerIngo Molnar <mingo@elte.hu>2009-05-19 04:29:21 -0400
commitfd51d251e4cdb21f68e9dbc4336514d64a105a79 (patch)
tree478fb26aea6b7e79532f33cc5949b4fece18cdfc /kernel/trace/blktrace.c
parent143c145e3a475065a4be661468d0df1bd0b25f74 (diff)
blktrace: remove debugfs entries on bad path
debugfs directory entries for devices are not removed on some of the failure pathes in do_blk_trace_setup(). One way to reproduce is to start blktrace on multiple devices with insufficient Vmalloc space: Devices will fail with a message like this: BLKTRACESETUP(2) /dev/sdu failed: 5/Input/output error If so, the respective entries in debugfs (e.g. /sys/kernel/debug/block/sdu) will remain and subsequent attempts to start blktrace on the respective devices will not succeed due to existing directories. [ Impact: fix /debug/tracing file cleanup corner case ] Signed-off-by: Stefan Raspl <stefan.raspl@linux.vnet.ibm.com> Acked-by: Li Zefan <lizf@cn.fujitsu.com> Cc: Li Zefan <lizf@cn.fujitsu.com> Cc: schwidefsky@de.ibm.com Cc: heiko.carstens@de.ibm.com LKML-Reference: <4A1266CC.5040801@linux.vnet.ibm.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/blktrace.c')
-rw-r--r--kernel/trace/blktrace.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
index 05b4747fd873..e3abf55bc8e5 100644
--- a/kernel/trace/blktrace.c
+++ b/kernel/trace/blktrace.c
@@ -262,6 +262,7 @@ static void blk_trace_free(struct blk_trace *bt)
262{ 262{
263 debugfs_remove(bt->msg_file); 263 debugfs_remove(bt->msg_file);
264 debugfs_remove(bt->dropped_file); 264 debugfs_remove(bt->dropped_file);
265 debugfs_remove(bt->dir);
265 relay_close(bt->rchan); 266 relay_close(bt->rchan);
266 free_percpu(bt->sequence); 267 free_percpu(bt->sequence);
267 free_percpu(bt->msg_data); 268 free_percpu(bt->msg_data);