summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiaxing Wang <hello.wjx@gmail.com>2015-11-06 16:04:16 +0800
committerSteven Rostedt <rostedt@goodmis.org>2015-11-06 10:02:33 -0500
commit8b1291994d8e5e621a8af7e165b106e50d04bbf1 (patch)
tree085b58d538a91b1d9f6b2a4168a8d725105222cb
parentd227c3ae4e94e5eb11dd780a811f59e1a7b74ccd (diff)
downloadlinux-8b1291994d8e5e621a8af7e165b106e50d04bbf1.tar.gz
linux-8b1291994d8e5e621a8af7e165b106e50d04bbf1.tar.bz2
linux-8b1291994d8e5e621a8af7e165b106e50d04bbf1.zip
tracing: Make tracing work when debugfs is not configured in
Currently tracing_init_dentry() returns -ENODEV when debugfs is not configured in, which causes tracefs not populated with tracing files and directories, so we will get an empty directory even after we manually mount tracefs. We can make tracing_init_dentry() return NULL if debugfs is not configured in and can manually mount tracefs. But return -ENODEV if debugfs is configured in but not initialized or failed to create automount point as that would break backward compatibility with older tools. Link: http://lkml.kernel.org/r/1446797056-11683-1-git-send-email-hello.wjx@gmail.com Signed-off-by: Jiaxing Wang <hello.wjx@gmail.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--kernel/trace/trace.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 2198a630ef58..08af79c106e1 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -6847,7 +6847,9 @@ struct dentry *tracing_init_dentry(void)
if (tr->dir)
return NULL;
- if (WARN_ON(!debugfs_initialized()))
+ if (WARN_ON(!tracefs_initialized()) ||
+ (IS_ENABLED(CONFIG_DEBUG_FS) &&
+ WARN_ON(!debugfs_initialized())))
return ERR_PTR(-ENODEV);
/*