Commit 1c769fc4 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

gcov: no need to check return value of debugfs_create functions

When calling debugfs functions, there is no need to ever check the
return value.  The function can work or not, but the code logic should
never do something different based on this.

Also delete the dentry variable as it is never needed.
Acked-by: default avatarPeter Oberparleiter <oberpar@linux.ibm.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0fc811e5
...@@ -64,7 +64,6 @@ struct gcov_node { ...@@ -64,7 +64,6 @@ struct gcov_node {
static const char objtree[] = OBJTREE; static const char objtree[] = OBJTREE;
static const char srctree[] = SRCTREE; static const char srctree[] = SRCTREE;
static struct gcov_node root_node; static struct gcov_node root_node;
static struct dentry *reset_dentry;
static LIST_HEAD(all_head); static LIST_HEAD(all_head);
static DEFINE_MUTEX(node_lock); static DEFINE_MUTEX(node_lock);
...@@ -387,8 +386,6 @@ static void add_links(struct gcov_node *node, struct dentry *parent) ...@@ -387,8 +386,6 @@ static void add_links(struct gcov_node *node, struct dentry *parent)
goto out_err; goto out_err;
node->links[i] = debugfs_create_symlink(deskew(basename), node->links[i] = debugfs_create_symlink(deskew(basename),
parent, target); parent, target);
if (!node->links[i])
goto out_err;
kfree(target); kfree(target);
} }
...@@ -450,11 +447,6 @@ static struct gcov_node *new_node(struct gcov_node *parent, ...@@ -450,11 +447,6 @@ static struct gcov_node *new_node(struct gcov_node *parent,
parent->dentry, node, &gcov_data_fops); parent->dentry, node, &gcov_data_fops);
} else } else
node->dentry = debugfs_create_dir(node->name, parent->dentry); node->dentry = debugfs_create_dir(node->name, parent->dentry);
if (!node->dentry) {
pr_warn("could not create file\n");
kfree(node);
return NULL;
}
if (info) if (info)
add_links(node, parent->dentry); add_links(node, parent->dentry);
list_add(&node->list, &parent->children); list_add(&node->list, &parent->children);
...@@ -761,32 +753,20 @@ void gcov_event(enum gcov_action action, struct gcov_info *info) ...@@ -761,32 +753,20 @@ void gcov_event(enum gcov_action action, struct gcov_info *info)
/* Create debugfs entries. */ /* Create debugfs entries. */
static __init int gcov_fs_init(void) static __init int gcov_fs_init(void)
{ {
int rc = -EIO;
init_node(&root_node, NULL, NULL, NULL); init_node(&root_node, NULL, NULL, NULL);
/* /*
* /sys/kernel/debug/gcov will be parent for the reset control file * /sys/kernel/debug/gcov will be parent for the reset control file
* and all profiling files. * and all profiling files.
*/ */
root_node.dentry = debugfs_create_dir("gcov", NULL); root_node.dentry = debugfs_create_dir("gcov", NULL);
if (!root_node.dentry)
goto err_remove;
/* /*
* Create reset file which resets all profiling counts when written * Create reset file which resets all profiling counts when written
* to. * to.
*/ */
reset_dentry = debugfs_create_file("reset", 0600, root_node.dentry, debugfs_create_file("reset", 0600, root_node.dentry, NULL,
NULL, &gcov_reset_fops); &gcov_reset_fops);
if (!reset_dentry)
goto err_remove;
/* Replay previous events to get our fs hierarchy up-to-date. */ /* Replay previous events to get our fs hierarchy up-to-date. */
gcov_enable_events(); gcov_enable_events();
return 0; return 0;
err_remove:
pr_err("init failed\n");
debugfs_remove(root_node.dentry);
return rc;
} }
device_initcall(gcov_fs_init); device_initcall(gcov_fs_init);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment