On Tue, 22 Jan 2019 16:21:44 +0100 Greg Kroah-Hartman <[email protected]> wrote:
> 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. Ah, OK. It simplifies the code. But I have a question below, > > Cc: Masami Hiramatsu <[email protected]> > Cc: Kees Cook <[email protected]> > Cc: Josef Bacik <[email protected]> > Cc: Thomas Gleixner <[email protected]> > Cc: "Naveen N. Rao" <[email protected]> > Cc: zhong jiang <[email protected]> > Signed-off-by: Greg Kroah-Hartman <[email protected]> > --- > kernel/fail_function.c | 23 +++++------------------ > 1 file changed, 5 insertions(+), 18 deletions(-) > > diff --git a/kernel/fail_function.c b/kernel/fail_function.c > index 17f75b545f66..afc779be5ebb 100644 > --- a/kernel/fail_function.c > +++ b/kernel/fail_function.c > @@ -152,20 +152,13 @@ static int fei_retval_get(void *data, u64 *val) > DEFINE_DEBUGFS_ATTRIBUTE(fei_retval_ops, fei_retval_get, fei_retval_set, > "%llx\n"); > > -static int fei_debugfs_add_attr(struct fei_attr *attr) > +static void fei_debugfs_add_attr(struct fei_attr *attr) > { > struct dentry *dir; > > dir = debugfs_create_dir(attr->kp.symbol_name, fei_debugfs_dir); > - if (!dir) > - return -ENOMEM; > - > - if (!debugfs_create_file("retval", 0600, dir, attr, &fei_retval_ops)) { > - debugfs_remove_recursive(dir); > - return -ENOMEM; > - } > > - return 0; Don't we need to check dir here? If above debugfs_create_dir() returns NULL, it seems we will create "retval" under root directory of debugfs. Thank you, > + debugfs_create_file("retval", 0600, dir, attr, &fei_retval_ops); > } > > static void fei_debugfs_remove_attr(struct fei_attr *attr) > @@ -306,7 +299,7 @@ static ssize_t fei_write(struct file *file, const char > __user *buffer, > > ret = register_kprobe(&attr->kp); > if (!ret) > - ret = fei_debugfs_add_attr(attr); > + fei_debugfs_add_attr(attr); > if (ret < 0) > fei_attr_remove(attr); > else { > @@ -337,19 +330,13 @@ static int __init fei_debugfs_init(void) > return PTR_ERR(dir); > > /* injectable attribute is just a symlink of error_inject/list */ > - if (!debugfs_create_symlink("injectable", dir, > - "../error_injection/list")) > - goto error; > + debugfs_create_symlink("injectable", dir, "../error_injection/list"); > > - if (!debugfs_create_file("inject", 0600, dir, NULL, &fei_ops)) > - goto error; > + debugfs_create_file("inject", 0600, dir, NULL, &fei_ops); > > fei_debugfs_dir = dir; > > return 0; > -error: > - debugfs_remove_recursive(dir); > - return -ENOMEM; > } > > late_initcall(fei_debugfs_init); > -- > 2.20.1 > -- Masami Hiramatsu <[email protected]>

