aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ubifs
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-04-01 03:16:17 -0400
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-04-05 03:46:01 -0400
commit95169535113073993a3ed97ecc21831657f42a80 (patch)
tree7f118921eb0d46effe0f9bd4e4d766ead16bd663 /fs/ubifs
parentcc6a86b950d69cfe542ee0d0ff30790152936a00 (diff)
UBIFS: fix error path in dbg_debugfs_init_fs
The debug interface is substandard and on error returns either NULL or an error code packed in the pointer. So using "IS_ERR" for the pointers returned by debugfs function is incorrect. Instead, we should use IS_ERR_OR_NULL. This path is an improved vestion of the original patch from Phil Carmody. Reported-by: Phil Carmody <ext-phil.2.carmody@nokia.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Acked-by: Phil Carmody <ext-phil.2.carmody@nokia.com>
Diffstat (limited to 'fs/ubifs')
-rw-r--r--fs/ubifs/debug.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c
index 304cc6e1c84b..645737769c98 100644
--- a/fs/ubifs/debug.c
+++ b/fs/ubifs/debug.c
@@ -2808,25 +2808,25 @@ int dbg_debugfs_init_fs(struct ubifs_info *c)
2808 sprintf(d->dfs_dir_name, "ubi%d_%d", c->vi.ubi_num, c->vi.vol_id); 2808 sprintf(d->dfs_dir_name, "ubi%d_%d", c->vi.ubi_num, c->vi.vol_id);
2809 fname = d->dfs_dir_name; 2809 fname = d->dfs_dir_name;
2810 dent = debugfs_create_dir(fname, dfs_rootdir); 2810 dent = debugfs_create_dir(fname, dfs_rootdir);
2811 if (IS_ERR(dent)) 2811 if (IS_ERR_OR_NULL(dent))
2812 goto out; 2812 goto out;
2813 d->dfs_dir = dent; 2813 d->dfs_dir = dent;
2814 2814
2815 fname = "dump_lprops"; 2815 fname = "dump_lprops";
2816 dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c, &dfs_fops); 2816 dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c, &dfs_fops);
2817 if (IS_ERR(dent)) 2817 if (IS_ERR_OR_NULL(dent))
2818 goto out_remove; 2818 goto out_remove;
2819 d->dfs_dump_lprops = dent; 2819 d->dfs_dump_lprops = dent;
2820 2820
2821 fname = "dump_budg"; 2821 fname = "dump_budg";
2822 dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c, &dfs_fops); 2822 dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c, &dfs_fops);
2823 if (IS_ERR(dent)) 2823 if (IS_ERR_OR_NULL(dent))
2824 goto out_remove; 2824 goto out_remove;
2825 d->dfs_dump_budg = dent; 2825 d->dfs_dump_budg = dent;
2826 2826
2827 fname = "dump_tnc"; 2827 fname = "dump_tnc";
2828 dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c, &dfs_fops); 2828 dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c, &dfs_fops);
2829 if (IS_ERR(dent)) 2829 if (IS_ERR_OR_NULL(dent))
2830 goto out_remove; 2830 goto out_remove;
2831 d->dfs_dump_tnc = dent; 2831 d->dfs_dump_tnc = dent;
2832 2832
@@ -2835,7 +2835,7 @@ int dbg_debugfs_init_fs(struct ubifs_info *c)
2835out_remove: 2835out_remove:
2836 debugfs_remove_recursive(d->dfs_dir); 2836 debugfs_remove_recursive(d->dfs_dir);
2837out: 2837out:
2838 err = PTR_ERR(dent); 2838 err = dent ? PTR_ERR(dent) : -ENODEV;
2839 ubifs_err("cannot create \"%s\" debugfs directory, error %d\n", 2839 ubifs_err("cannot create \"%s\" debugfs directory, error %d\n",
2840 fname, err); 2840 fname, err);
2841 return err; 2841 return err;