Commit 2abbf9a4 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman Committed by Andreas Gruenbacher

gfs: 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.

There is no need to save the dentries for the debugfs files, so drop
those variables to save a bit of space and make the code simpler.

Cc: Bob Peterson <rpeterso@redhat.com>
Cc: Andreas Gruenbacher <agruenba@redhat.com>
Cc: cluster-devel@redhat.com
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
parent 49a57857
...@@ -2131,71 +2131,29 @@ static const struct file_operations gfs2_sbstats_fops = { ...@@ -2131,71 +2131,29 @@ static const struct file_operations gfs2_sbstats_fops = {
.release = seq_release, .release = seq_release,
}; };
int gfs2_create_debugfs_file(struct gfs2_sbd *sdp) void gfs2_create_debugfs_file(struct gfs2_sbd *sdp)
{ {
struct dentry *dent; sdp->debugfs_dir = debugfs_create_dir(sdp->sd_table_name, gfs2_root);
dent = debugfs_create_dir(sdp->sd_table_name, gfs2_root); debugfs_create_file("glocks", S_IFREG | S_IRUGO, sdp->debugfs_dir, sdp,
if (IS_ERR_OR_NULL(dent))
goto fail;
sdp->debugfs_dir = dent;
dent = debugfs_create_file("glocks",
S_IFREG | S_IRUGO,
sdp->debugfs_dir, sdp,
&gfs2_glocks_fops); &gfs2_glocks_fops);
if (IS_ERR_OR_NULL(dent))
goto fail;
sdp->debugfs_dentry_glocks = dent;
dent = debugfs_create_file("glstats", debugfs_create_file("glstats", S_IFREG | S_IRUGO, sdp->debugfs_dir, sdp,
S_IFREG | S_IRUGO,
sdp->debugfs_dir, sdp,
&gfs2_glstats_fops); &gfs2_glstats_fops);
if (IS_ERR_OR_NULL(dent))
goto fail;
sdp->debugfs_dentry_glstats = dent;
dent = debugfs_create_file("sbstats", debugfs_create_file("sbstats", S_IFREG | S_IRUGO, sdp->debugfs_dir, sdp,
S_IFREG | S_IRUGO,
sdp->debugfs_dir, sdp,
&gfs2_sbstats_fops); &gfs2_sbstats_fops);
if (IS_ERR_OR_NULL(dent))
goto fail;
sdp->debugfs_dentry_sbstats = dent;
return 0;
fail:
gfs2_delete_debugfs_file(sdp);
return dent ? PTR_ERR(dent) : -ENOMEM;
} }
void gfs2_delete_debugfs_file(struct gfs2_sbd *sdp) void gfs2_delete_debugfs_file(struct gfs2_sbd *sdp)
{ {
if (sdp->debugfs_dir) { debugfs_remove_recursive(sdp->debugfs_dir);
if (sdp->debugfs_dentry_glocks) {
debugfs_remove(sdp->debugfs_dentry_glocks);
sdp->debugfs_dentry_glocks = NULL;
}
if (sdp->debugfs_dentry_glstats) {
debugfs_remove(sdp->debugfs_dentry_glstats);
sdp->debugfs_dentry_glstats = NULL;
}
if (sdp->debugfs_dentry_sbstats) {
debugfs_remove(sdp->debugfs_dentry_sbstats);
sdp->debugfs_dentry_sbstats = NULL;
}
debugfs_remove(sdp->debugfs_dir);
sdp->debugfs_dir = NULL; sdp->debugfs_dir = NULL;
}
} }
int gfs2_register_debugfs(void) void gfs2_register_debugfs(void)
{ {
gfs2_root = debugfs_create_dir("gfs2", NULL); gfs2_root = debugfs_create_dir("gfs2", NULL);
if (IS_ERR(gfs2_root))
return PTR_ERR(gfs2_root);
return gfs2_root ? 0 : -ENOMEM;
} }
void gfs2_unregister_debugfs(void) void gfs2_unregister_debugfs(void)
......
...@@ -243,9 +243,9 @@ extern void gfs2_glock_free(struct gfs2_glock *gl); ...@@ -243,9 +243,9 @@ extern void gfs2_glock_free(struct gfs2_glock *gl);
extern int __init gfs2_glock_init(void); extern int __init gfs2_glock_init(void);
extern void gfs2_glock_exit(void); extern void gfs2_glock_exit(void);
extern int gfs2_create_debugfs_file(struct gfs2_sbd *sdp); extern void gfs2_create_debugfs_file(struct gfs2_sbd *sdp);
extern void gfs2_delete_debugfs_file(struct gfs2_sbd *sdp); extern void gfs2_delete_debugfs_file(struct gfs2_sbd *sdp);
extern int gfs2_register_debugfs(void); extern void gfs2_register_debugfs(void);
extern void gfs2_unregister_debugfs(void); extern void gfs2_unregister_debugfs(void);
extern const struct lm_lockops gfs2_dlm_ops; extern const struct lm_lockops gfs2_dlm_ops;
......
...@@ -853,9 +853,6 @@ struct gfs2_sbd { ...@@ -853,9 +853,6 @@ struct gfs2_sbd {
unsigned long sd_last_warning; unsigned long sd_last_warning;
struct dentry *debugfs_dir; /* debugfs directory */ struct dentry *debugfs_dir; /* debugfs directory */
struct dentry *debugfs_dentry_glocks;
struct dentry *debugfs_dentry_glstats;
struct dentry *debugfs_dentry_sbstats;
}; };
static inline void gfs2_glstats_inc(struct gfs2_glock *gl, int which) static inline void gfs2_glstats_inc(struct gfs2_glock *gl, int which)
......
...@@ -178,16 +178,12 @@ static int __init init_gfs2_fs(void) ...@@ -178,16 +178,12 @@ static int __init init_gfs2_fs(void)
if (!gfs2_page_pool) if (!gfs2_page_pool)
goto fail_mempool; goto fail_mempool;
error = gfs2_register_debugfs(); gfs2_register_debugfs();
if (error)
goto fail_debugfs;
pr_info("GFS2 installed\n"); pr_info("GFS2 installed\n");
return 0; return 0;
fail_debugfs:
mempool_destroy(gfs2_page_pool);
fail_mempool: fail_mempool:
destroy_workqueue(gfs2_freeze_wq); destroy_workqueue(gfs2_freeze_wq);
fail_wq3: fail_wq3:
......
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