.. | .. |
---|
58 | 58 | struct dentry *dentry; |
---|
59 | 59 | struct dentry **links; |
---|
60 | 60 | int num_loaded; |
---|
61 | | - char name[0]; |
---|
| 61 | + char name[]; |
---|
62 | 62 | }; |
---|
63 | 63 | |
---|
64 | 64 | static const char objtree[] = OBJTREE; |
---|
65 | 65 | static const char srctree[] = SRCTREE; |
---|
66 | 66 | static struct gcov_node root_node; |
---|
67 | | -static struct dentry *reset_dentry; |
---|
68 | 67 | static LIST_HEAD(all_head); |
---|
69 | 68 | static DEFINE_MUTEX(node_lock); |
---|
70 | 69 | |
---|
.. | .. |
---|
387 | 386 | goto out_err; |
---|
388 | 387 | node->links[i] = debugfs_create_symlink(deskew(basename), |
---|
389 | 388 | parent, target); |
---|
390 | | - if (!node->links[i]) |
---|
391 | | - goto out_err; |
---|
392 | 389 | kfree(target); |
---|
393 | 390 | } |
---|
394 | 391 | |
---|
.. | .. |
---|
450 | 447 | parent->dentry, node, &gcov_data_fops); |
---|
451 | 448 | } else |
---|
452 | 449 | node->dentry = debugfs_create_dir(node->name, parent->dentry); |
---|
453 | | - if (!node->dentry) { |
---|
454 | | - pr_warn("could not create file\n"); |
---|
455 | | - kfree(node); |
---|
456 | | - return NULL; |
---|
457 | | - } |
---|
458 | 450 | if (info) |
---|
459 | 451 | add_links(node, parent->dentry); |
---|
460 | 452 | list_add(&node->list, &parent->children); |
---|
.. | .. |
---|
761 | 753 | /* Create debugfs entries. */ |
---|
762 | 754 | static __init int gcov_fs_init(void) |
---|
763 | 755 | { |
---|
764 | | - int rc = -EIO; |
---|
765 | | - |
---|
766 | 756 | init_node(&root_node, NULL, NULL, NULL); |
---|
767 | 757 | /* |
---|
768 | 758 | * /sys/kernel/debug/gcov will be parent for the reset control file |
---|
769 | 759 | * and all profiling files. |
---|
770 | 760 | */ |
---|
771 | 761 | root_node.dentry = debugfs_create_dir("gcov", NULL); |
---|
772 | | - if (!root_node.dentry) |
---|
773 | | - goto err_remove; |
---|
774 | 762 | /* |
---|
775 | 763 | * Create reset file which resets all profiling counts when written |
---|
776 | 764 | * to. |
---|
777 | 765 | */ |
---|
778 | | - reset_dentry = debugfs_create_file("reset", 0600, root_node.dentry, |
---|
779 | | - NULL, &gcov_reset_fops); |
---|
780 | | - if (!reset_dentry) |
---|
781 | | - goto err_remove; |
---|
| 766 | + debugfs_create_file("reset", 0600, root_node.dentry, NULL, |
---|
| 767 | + &gcov_reset_fops); |
---|
782 | 768 | /* Replay previous events to get our fs hierarchy up-to-date. */ |
---|
783 | 769 | gcov_enable_events(); |
---|
784 | 770 | return 0; |
---|
785 | | - |
---|
786 | | -err_remove: |
---|
787 | | - pr_err("init failed\n"); |
---|
788 | | - debugfs_remove(root_node.dentry); |
---|
789 | | - |
---|
790 | | - return rc; |
---|
791 | 771 | } |
---|
792 | 772 | device_initcall(gcov_fs_init); |
---|