]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
ubifs: no need to check return value of debugfs_create functions
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 12 Jun 2019 15:21:20 +0000 (17:21 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Jul 2019 14:57:17 +0000 (16:57 +0200)
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.

Cc: Richard Weinberger <richard@nod.at>
Cc: Artem Bityutskiy <dedekind1@gmail.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: linux-mtd@lists.infradead.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20190612152120.GA17450@kroah.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ubifs/debug.c
fs/ubifs/debug.h
fs/ubifs/super.c

index 3a2613038e8875abc7d4c704d01495e5cce9babf..57e6fcb043ca61df775c435ca60d7924868c8bde 100644 (file)
@@ -2812,115 +2812,69 @@ static const struct file_operations dfs_fops = {
  * dbg_debugfs_init_fs - initialize debugfs for UBIFS instance.
  * @c: UBIFS file-system description object
  *
- * This function creates all debugfs files for this instance of UBIFS. Returns
- * zero in case of success and a negative error code in case of failure.
+ * This function creates all debugfs files for this instance of UBIFS.
  *
  * Note, the only reason we have not merged this function with the
  * 'ubifs_debugging_init()' function is because it is better to initialize
  * debugfs interfaces at the very end of the mount process, and remove them at
  * the very beginning of the mount process.
  */
-int dbg_debugfs_init_fs(struct ubifs_info *c)
+void dbg_debugfs_init_fs(struct ubifs_info *c)
 {
        int err, n;
        const char *fname;
-       struct dentry *dent;
        struct ubifs_debug_info *d = c->dbg;
 
-       if (!IS_ENABLED(CONFIG_DEBUG_FS))
-               return 0;
-
        n = snprintf(d->dfs_dir_name, UBIFS_DFS_DIR_LEN + 1, UBIFS_DFS_DIR_NAME,
                     c->vi.ubi_num, c->vi.vol_id);
        if (n == UBIFS_DFS_DIR_LEN) {
                /* The array size is too small */
                fname = UBIFS_DFS_DIR_NAME;
-               dent = ERR_PTR(-EINVAL);
-               goto out;
+               return;
        }
 
        fname = d->dfs_dir_name;
-       dent = debugfs_create_dir(fname, dfs_rootdir);
-       if (IS_ERR_OR_NULL(dent))
-               goto out;
-       d->dfs_dir = dent;
+       d->dfs_dir = debugfs_create_dir(fname, dfs_rootdir);
 
        fname = "dump_lprops";
-       dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c, &dfs_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       d->dfs_dump_lprops = dent;
+       d->dfs_dump_lprops = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c,
+                                                &dfs_fops);
 
        fname = "dump_budg";
-       dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c, &dfs_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       d->dfs_dump_budg = dent;
+       d->dfs_dump_budg = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c,
+                                              &dfs_fops);
 
        fname = "dump_tnc";
-       dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c, &dfs_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       d->dfs_dump_tnc = dent;
+       d->dfs_dump_tnc = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c,
+                                             &dfs_fops);
 
        fname = "chk_general";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, d->dfs_dir, c,
-                                  &dfs_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       d->dfs_chk_gen = dent;
+       d->dfs_chk_gen = debugfs_create_file(fname, S_IRUSR | S_IWUSR,
+                                            d->dfs_dir, c, &dfs_fops);
 
        fname = "chk_index";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, d->dfs_dir, c,
-                                  &dfs_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       d->dfs_chk_index = dent;
+       d->dfs_chk_index = debugfs_create_file(fname, S_IRUSR | S_IWUSR,
+                                              d->dfs_dir, c, &dfs_fops);
 
        fname = "chk_orphans";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, d->dfs_dir, c,
-                                  &dfs_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       d->dfs_chk_orph = dent;
+       d->dfs_chk_orph = debugfs_create_file(fname, S_IRUSR | S_IWUSR,
+                                             d->dfs_dir, c, &dfs_fops);
 
        fname = "chk_lprops";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, d->dfs_dir, c,
-                                  &dfs_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       d->dfs_chk_lprops = dent;
+       d->dfs_chk_lprops = debugfs_create_file(fname, S_IRUSR | S_IWUSR,
+                                               d->dfs_dir, c, &dfs_fops);
 
        fname = "chk_fs";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, d->dfs_dir, c,
-                                  &dfs_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       d->dfs_chk_fs = dent;
+       d->dfs_chk_fs = debugfs_create_file(fname, S_IRUSR | S_IWUSR,
+                                           d->dfs_dir, c, &dfs_fops);
 
        fname = "tst_recovery";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, d->dfs_dir, c,
-                                  &dfs_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       d->dfs_tst_rcvry = dent;
+       d->dfs_tst_rcvry = debugfs_create_file(fname, S_IRUSR | S_IWUSR,
+                                              d->dfs_dir, c, &dfs_fops);
 
        fname = "ro_error";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, d->dfs_dir, c,
-                                  &dfs_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       d->dfs_ro_error = dent;
-
-       return 0;
-
-out_remove:
-       debugfs_remove_recursive(d->dfs_dir);
-out:
-       err = dent ? PTR_ERR(dent) : -ENODEV;
-       ubifs_err(c, "cannot create \"%s\" debugfs file or directory, error %d\n",
-                 fname, err);
-       return err;
+       d->dfs_ro_error = debugfs_create_file(fname, S_IRUSR | S_IWUSR,
+                                             d->dfs_dir, c, &dfs_fops);
 }
 
 /**
@@ -2929,8 +2883,7 @@ out:
  */
 void dbg_debugfs_exit_fs(struct ubifs_info *c)
 {
-       if (IS_ENABLED(CONFIG_DEBUG_FS))
-               debugfs_remove_recursive(c->dbg->dfs_dir);
+       debugfs_remove_recursive(c->dbg->dfs_dir);
 }
 
 struct ubifs_global_debug_info ubifs_dbg;
@@ -3006,75 +2959,38 @@ static const struct file_operations dfs_global_fops = {
  *
  * UBIFS uses debugfs file-system to expose various debugging knobs to
  * user-space. This function creates "ubifs" directory in the debugfs
- * file-system. Returns zero in case of success and a negative error code in
- * case of failure.
+ * file-system.
  */
-int dbg_debugfs_init(void)
+void dbg_debugfs_init(void)
 {
-       int err;
        const char *fname;
-       struct dentry *dent;
-
-       if (!IS_ENABLED(CONFIG_DEBUG_FS))
-               return 0;
 
        fname = "ubifs";
-       dent = debugfs_create_dir(fname, NULL);
-       if (IS_ERR_OR_NULL(dent))
-               goto out;
-       dfs_rootdir = dent;
+       dfs_rootdir = debugfs_create_dir(fname, NULL);
 
        fname = "chk_general";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, dfs_rootdir, NULL,
-                                  &dfs_global_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       dfs_chk_gen = dent;
+       dfs_chk_gen = debugfs_create_file(fname, S_IRUSR | S_IWUSR, dfs_rootdir,
+                                         NULL, &dfs_global_fops);
 
        fname = "chk_index";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, dfs_rootdir, NULL,
-                                  &dfs_global_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       dfs_chk_index = dent;
+       dfs_chk_index = debugfs_create_file(fname, S_IRUSR | S_IWUSR,
+                                           dfs_rootdir, NULL, &dfs_global_fops);
 
        fname = "chk_orphans";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, dfs_rootdir, NULL,
-                                  &dfs_global_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       dfs_chk_orph = dent;
+       dfs_chk_orph = debugfs_create_file(fname, S_IRUSR | S_IWUSR,
+                                          dfs_rootdir, NULL, &dfs_global_fops);
 
        fname = "chk_lprops";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, dfs_rootdir, NULL,
-                                  &dfs_global_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       dfs_chk_lprops = dent;
+       dfs_chk_lprops = debugfs_create_file(fname, S_IRUSR | S_IWUSR,
+                                            dfs_rootdir, NULL, &dfs_global_fops);
 
        fname = "chk_fs";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, dfs_rootdir, NULL,
-                                  &dfs_global_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       dfs_chk_fs = dent;
+       dfs_chk_fs = debugfs_create_file(fname, S_IRUSR | S_IWUSR, dfs_rootdir,
+                                        NULL, &dfs_global_fops);
 
        fname = "tst_recovery";
-       dent = debugfs_create_file(fname, S_IRUSR | S_IWUSR, dfs_rootdir, NULL,
-                                  &dfs_global_fops);
-       if (IS_ERR_OR_NULL(dent))
-               goto out_remove;
-       dfs_tst_rcvry = dent;
-
-       return 0;
-
-out_remove:
-       debugfs_remove_recursive(dfs_rootdir);
-out:
-       err = dent ? PTR_ERR(dent) : -ENODEV;
-       pr_err("UBIFS error (pid %d): cannot create \"%s\" debugfs file or directory, error %d\n",
-              current->pid, fname, err);
-       return err;
+       dfs_tst_rcvry = debugfs_create_file(fname, S_IRUSR | S_IWUSR,
+                                           dfs_rootdir, NULL, &dfs_global_fops);
 }
 
 /**
@@ -3082,8 +2998,7 @@ out:
  */
 void dbg_debugfs_exit(void)
 {
-       if (IS_ENABLED(CONFIG_DEBUG_FS))
-               debugfs_remove_recursive(dfs_rootdir);
+       debugfs_remove_recursive(dfs_rootdir);
 }
 
 void ubifs_assert_failed(struct ubifs_info *c, const char *expr,
index 64c6977c189b932494f282a708a04101e4849878..c6c8f1b62af51b53575638f67c9afd0dde613a28 100644 (file)
@@ -309,9 +309,9 @@ int dbg_leb_unmap(struct ubifs_info *c, int lnum);
 int dbg_leb_map(struct ubifs_info *c, int lnum);
 
 /* Debugfs-related stuff */
-int dbg_debugfs_init(void);
+void dbg_debugfs_init(void);
 void dbg_debugfs_exit(void);
-int dbg_debugfs_init_fs(struct ubifs_info *c);
+void dbg_debugfs_init_fs(struct ubifs_info *c);
 void dbg_debugfs_exit_fs(struct ubifs_info *c);
 
 #endif /* !__UBIFS_DEBUG_H__ */
index 04b8ecfd347013540ef53dc7c607b431f15626d5..2429906bd681146ee02865aa648208d607e81dd7 100644 (file)
@@ -1477,9 +1477,7 @@ static int mount_ubifs(struct ubifs_info *c)
        if (err)
                goto out_infos;
 
-       err = dbg_debugfs_init_fs(c);
-       if (err)
-               goto out_infos;
+       dbg_debugfs_init_fs(c);
 
        c->mounting = 0;
 
@@ -2364,9 +2362,7 @@ static int __init ubifs_init(void)
        if (err)
                goto out_shrinker;
 
-       err = dbg_debugfs_init();
-       if (err)
-               goto out_compr;
+       dbg_debugfs_init();
 
        err = register_filesystem(&ubifs_fs_type);
        if (err) {
@@ -2378,7 +2374,6 @@ static int __init ubifs_init(void)
 
 out_dbg:
        dbg_debugfs_exit();
-out_compr:
        ubifs_compressors_exit();
 out_shrinker:
        unregister_shrinker(&ubifs_shrinker_info);