summaryrefslogtreecommitdiffstats
path: root/runtime/transport/utt.c
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/transport/utt.c')
-rw-r--r--runtime/transport/utt.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/runtime/transport/utt.c b/runtime/transport/utt.c
index 2389ccac..1ca59592 100644
--- a/runtime/transport/utt.c
+++ b/runtime/transport/utt.c
@@ -45,6 +45,8 @@ static void utt_remove_root(struct utt_trace *utt)
static void utt_remove_tree(struct utt_trace *utt)
{
+ if (utt == NULL || utt->dir == NULL)
+ return;
debugfs_remove(utt->dir);
utt_remove_root(utt);
}
@@ -65,7 +67,6 @@ static struct dentry *utt_create_tree(struct utt_trace *utt, const char *root, c
dir = debugfs_create_dir(name, utt->utt_tree_root);
if (!dir)
utt_remove_root(utt);
-
err:
return dir;
}
@@ -73,8 +74,12 @@ err:
void utt_trace_cleanup(struct utt_trace *utt)
{
- relay_close(utt->rchan);
- debugfs_remove(utt->dropped_file);
+ if (utt == NULL)
+ return;
+ if (utt->rchan)
+ relay_close(utt->rchan);
+ if (utt->dropped_file)
+ debugfs_remove(utt->dropped_file);
utt_remove_tree(utt);
kfree(utt);
}
@@ -144,8 +149,13 @@ static struct dentry *utt_create_buf_file_callback(const char *filename,
struct rchan_buf *buf,
int *is_global)
{
- return debugfs_create_file(filename, mode, parent, buf,
+ struct dentry *file = debugfs_create_file(filename, mode, parent, buf,
&relay_file_operations);
+ if (file) {
+ file->d_inode->i_uid = _stp_uid;
+ file->d_inode->i_gid = _stp_gid;
+ }
+ return file;
}
static struct dentry *utt_create_global_buf_file_callback(const char *filename,
@@ -154,9 +164,15 @@ static struct dentry *utt_create_global_buf_file_callback(const char *filename,
struct rchan_buf *buf,
int *is_global)
{
+ struct dentry *file;
*is_global = 1;
- return debugfs_create_file(filename, mode, parent, buf,
+ file = debugfs_create_file(filename, mode, parent, buf,
&relay_file_operations);
+ if (file) {
+ file->d_inode->i_uid = _stp_uid;
+ file->d_inode->i_gid = _stp_gid;
+ }
+ return file;
}
static struct rchan_callbacks utt_relay_callbacks = {