提交 d5bf5cf9 编写于 作者: G Greg Kroah-Hartman

staging: lustre: make ldebugfs_add_vars a void function

The call to ldebugfs_add_vars() can not really fail, so have it just
return nothing, which allows us to clean up a lot of unused error
handling code.

Cc: Oleg Drokin <oleg.drokin@intel.com>
Cc: Andreas Dilger <andreas.dilger@intel.com>
Cc: James Simmons <jsimmons@infradead.org>
Cc: NeilBrown <neilb@suse.com>
Cc: Roman Storozhenko <romeusmeister@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Quentin Bouget <quentin.bouget@cea.fr>
Cc: Aastha Gupta <aastha.gupta4104@gmail.com>
Cc: Ben Evans <bevans@cray.com>
Cc: Arvind Yadav <arvind.yadav.cs@gmail.com>
Cc: Arushi Singhal <arushisinghal19971997@gmail.com>
Cc: Frank Zago <fzago@cray.com>
Cc: Patrick Farrell <paf@cray.com>
Cc: Simo Koskinen <koskisoft@gmail.com>
Cc: Andriy Skulysh <andriy.skulysh@seagate.com>
Cc: "John L. Hammond" <john.hammond@intel.com>
Cc: Mathias Rav <mathiasrav@gmail.com>
Cc: Dafna Hirschfeld <dafna3@gmail.com>
Cc: "Gustavo A. R. Silva" <garsilva@embeddedor.com>
Cc: lustre-devel@lists.lustre.org
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 00905f00
...@@ -295,26 +295,12 @@ static void seq_client_debugfs_fini(struct lu_client_seq *seq) ...@@ -295,26 +295,12 @@ static void seq_client_debugfs_fini(struct lu_client_seq *seq)
ldebugfs_remove(&seq->lcs_debugfs_entry); ldebugfs_remove(&seq->lcs_debugfs_entry);
} }
static int seq_client_debugfs_init(struct lu_client_seq *seq) static void seq_client_debugfs_init(struct lu_client_seq *seq)
{ {
int rc;
seq->lcs_debugfs_entry = debugfs_create_dir(seq->lcs_name, seq->lcs_debugfs_entry = debugfs_create_dir(seq->lcs_name,
seq_debugfs_dir); seq_debugfs_dir);
rc = ldebugfs_add_vars(seq->lcs_debugfs_entry, ldebugfs_add_vars(seq->lcs_debugfs_entry, seq_client_debugfs_list, seq);
seq_client_debugfs_list, seq);
if (rc) {
CERROR("%s: Can't init sequence manager debugfs, rc %d\n",
seq->lcs_name, rc);
goto out_cleanup;
}
return 0;
out_cleanup:
seq_client_debugfs_fini(seq);
return rc;
} }
static void seq_client_fini(struct lu_client_seq *seq) static void seq_client_fini(struct lu_client_seq *seq)
...@@ -327,13 +313,9 @@ static void seq_client_fini(struct lu_client_seq *seq) ...@@ -327,13 +313,9 @@ static void seq_client_fini(struct lu_client_seq *seq)
} }
} }
static int seq_client_init(struct lu_client_seq *seq, static void seq_client_init(struct lu_client_seq *seq, struct obd_export *exp,
struct obd_export *exp, enum lu_cli_type type, const char *prefix)
enum lu_cli_type type,
const char *prefix)
{ {
int rc;
LASSERT(seq); LASSERT(seq);
LASSERT(prefix); LASSERT(prefix);
...@@ -354,10 +336,7 @@ static int seq_client_init(struct lu_client_seq *seq, ...@@ -354,10 +336,7 @@ static int seq_client_init(struct lu_client_seq *seq,
snprintf(seq->lcs_name, sizeof(seq->lcs_name), snprintf(seq->lcs_name, sizeof(seq->lcs_name),
"cli-%s", prefix); "cli-%s", prefix);
rc = seq_client_debugfs_init(seq); seq_client_debugfs_init(seq);
if (rc)
seq_client_fini(seq);
return rc;
} }
int client_fid_init(struct obd_device *obd, int client_fid_init(struct obd_device *obd,
...@@ -380,12 +359,10 @@ int client_fid_init(struct obd_device *obd, ...@@ -380,12 +359,10 @@ int client_fid_init(struct obd_device *obd,
snprintf(prefix, MAX_OBD_NAME + 5, "cli-%s", obd->obd_name); snprintf(prefix, MAX_OBD_NAME + 5, "cli-%s", obd->obd_name);
/* Init client side sequence-manager */ /* Init client side sequence-manager */
rc = seq_client_init(cli->cl_seq, exp, type, prefix); seq_client_init(cli->cl_seq, exp, type, prefix);
kfree(prefix); kfree(prefix);
if (rc)
goto out_free_seq;
return rc; return 0;
out_free_seq: out_free_seq:
kfree(cli->cl_seq); kfree(cli->cl_seq);
cli->cl_seq = NULL; cli->cl_seq = NULL;
......
...@@ -217,25 +217,12 @@ int fld_client_del_target(struct lu_client_fld *fld, __u64 idx) ...@@ -217,25 +217,12 @@ int fld_client_del_target(struct lu_client_fld *fld, __u64 idx)
static struct dentry *fld_debugfs_dir; static struct dentry *fld_debugfs_dir;
static int fld_client_debugfs_init(struct lu_client_fld *fld) static void fld_client_debugfs_init(struct lu_client_fld *fld)
{ {
int rc;
fld->lcf_debugfs_entry = debugfs_create_dir(fld->lcf_name, fld->lcf_debugfs_entry = debugfs_create_dir(fld->lcf_name,
fld_debugfs_dir); fld_debugfs_dir);
rc = ldebugfs_add_vars(fld->lcf_debugfs_entry, ldebugfs_add_vars(fld->lcf_debugfs_entry, fld_client_debugfs_list, fld);
fld_client_debugfs_list, fld);
if (rc) {
CERROR("%s: Can't init FLD debufs, rc %d\n", fld->lcf_name, rc);
goto out_cleanup;
}
return 0;
out_cleanup:
fld_client_debugfs_fini(fld);
return rc;
} }
void fld_client_debugfs_fini(struct lu_client_fld *fld) void fld_client_debugfs_fini(struct lu_client_fld *fld)
...@@ -254,7 +241,7 @@ int fld_client_init(struct lu_client_fld *fld, ...@@ -254,7 +241,7 @@ int fld_client_init(struct lu_client_fld *fld,
const char *prefix, int hash) const char *prefix, int hash)
{ {
int cache_size, cache_threshold; int cache_size, cache_threshold;
int rc; int rc = 0;
snprintf(fld->lcf_name, sizeof(fld->lcf_name), snprintf(fld->lcf_name, sizeof(fld->lcf_name),
"cli-%s", prefix); "cli-%s", prefix);
...@@ -284,15 +271,10 @@ int fld_client_init(struct lu_client_fld *fld, ...@@ -284,15 +271,10 @@ int fld_client_init(struct lu_client_fld *fld,
goto out; goto out;
} }
rc = fld_client_debugfs_init(fld); fld_client_debugfs_init(fld);
if (rc)
goto out;
out: out:
if (rc) CDEBUG(D_INFO, "%s: Using \"%s\" hash\n",
fld_client_fini(fld); fld->lcf_name, fld->lcf_hash->fh_name);
else
CDEBUG(D_INFO, "%s: Using \"%s\" hash\n",
fld->lcf_name, fld->lcf_hash->fh_name);
return rc; return rc;
} }
EXPORT_SYMBOL(fld_client_init); EXPORT_SYMBOL(fld_client_init);
......
...@@ -450,9 +450,8 @@ int lprocfs_exp_cleanup(struct obd_export *exp); ...@@ -450,9 +450,8 @@ int lprocfs_exp_cleanup(struct obd_export *exp);
extern const struct file_operations lprocfs_stats_seq_fops; extern const struct file_operations lprocfs_stats_seq_fops;
/* lprocfs_status.c */ /* lprocfs_status.c */
int ldebugfs_add_vars(struct dentry *parent, void ldebugfs_add_vars(struct dentry *parent, struct lprocfs_vars *var,
struct lprocfs_vars *var, void *data);
void *data);
void ldebugfs_remove(struct dentry **entryp); void ldebugfs_remove(struct dentry **entryp);
......
...@@ -1185,7 +1185,7 @@ void ldlm_namespace_free_prior(struct ldlm_namespace *ns, ...@@ -1185,7 +1185,7 @@ void ldlm_namespace_free_prior(struct ldlm_namespace *ns,
void ldlm_namespace_free_post(struct ldlm_namespace *ns); void ldlm_namespace_free_post(struct ldlm_namespace *ns);
void ldlm_namespace_get(struct ldlm_namespace *ns); void ldlm_namespace_get(struct ldlm_namespace *ns);
void ldlm_namespace_put(struct ldlm_namespace *ns); void ldlm_namespace_put(struct ldlm_namespace *ns);
int ldlm_debugfs_setup(void); void ldlm_debugfs_setup(void);
void ldlm_debugfs_cleanup(void); void ldlm_debugfs_cleanup(void);
/* resource.c - internal */ /* resource.c - internal */
......
...@@ -979,9 +979,7 @@ static int ldlm_setup(void) ...@@ -979,9 +979,7 @@ static int ldlm_setup(void)
goto out; goto out;
} }
rc = ldlm_debugfs_setup(); ldlm_debugfs_setup();
if (rc != 0)
goto out;
memset(&conf, 0, sizeof(conf)); memset(&conf, 0, sizeof(conf));
conf = (typeof(conf)) { conf = (typeof(conf)) {
......
...@@ -106,10 +106,8 @@ static struct lprocfs_vars ldlm_debugfs_list[] = { ...@@ -106,10 +106,8 @@ static struct lprocfs_vars ldlm_debugfs_list[] = {
{ NULL } { NULL }
}; };
int ldlm_debugfs_setup(void) void ldlm_debugfs_setup(void)
{ {
int rc;
ldlm_debugfs_dir = debugfs_create_dir(OBD_LDLM_DEVICENAME, ldlm_debugfs_dir = debugfs_create_dir(OBD_LDLM_DEVICENAME,
debugfs_lustre_root); debugfs_lustre_root);
...@@ -118,22 +116,7 @@ int ldlm_debugfs_setup(void) ...@@ -118,22 +116,7 @@ int ldlm_debugfs_setup(void)
ldlm_svc_debugfs_dir = debugfs_create_dir("services", ldlm_debugfs_dir); ldlm_svc_debugfs_dir = debugfs_create_dir("services", ldlm_debugfs_dir);
rc = ldebugfs_add_vars(ldlm_debugfs_dir, ldlm_debugfs_list, NULL); ldebugfs_add_vars(ldlm_debugfs_dir, ldlm_debugfs_list, NULL);
if (rc) {
CERROR("LProcFS failed in ldlm-init\n");
goto err_svc;
}
return 0;
err_svc:
ldebugfs_remove(&ldlm_svc_debugfs_dir);
ldebugfs_remove(&ldlm_ns_debugfs_dir);
ldebugfs_remove(&ldlm_debugfs_dir);
ldlm_svc_debugfs_dir = NULL;
ldlm_ns_debugfs_dir = NULL;
ldlm_debugfs_dir = NULL;
return rc;
} }
void ldlm_debugfs_cleanup(void) void ldlm_debugfs_cleanup(void)
......
...@@ -1210,10 +1210,7 @@ int ldebugfs_register_mountpoint(struct dentry *parent, ...@@ -1210,10 +1210,7 @@ int ldebugfs_register_mountpoint(struct dentry *parent,
debugfs_create_file("stats", 0644, sbi->ll_debugfs_entry, debugfs_create_file("stats", 0644, sbi->ll_debugfs_entry,
sbi->ll_ra_stats, &lprocfs_stats_seq_fops); sbi->ll_ra_stats, &lprocfs_stats_seq_fops);
err = ldebugfs_add_vars(sbi->ll_debugfs_entry, ldebugfs_add_vars(sbi->ll_debugfs_entry, lprocfs_llite_obd_vars, sb);
lprocfs_llite_obd_vars, sb);
if (err)
goto out;
sbi->ll_kobj.kset = llite_kset; sbi->ll_kobj.kset = llite_kset;
init_completion(&sbi->ll_kobj_unregister); init_completion(&sbi->ll_kobj_unregister);
......
...@@ -302,15 +302,13 @@ EXPORT_SYMBOL(lprocfs_seq_release); ...@@ -302,15 +302,13 @@ EXPORT_SYMBOL(lprocfs_seq_release);
static const struct file_operations lprocfs_generic_fops = { }; static const struct file_operations lprocfs_generic_fops = { };
int ldebugfs_add_vars(struct dentry *parent, void ldebugfs_add_vars(struct dentry *parent, struct lprocfs_vars *list,
struct lprocfs_vars *list, void *data)
void *data)
{ {
if (IS_ERR_OR_NULL(parent) || IS_ERR_OR_NULL(list)) if (IS_ERR_OR_NULL(parent) || IS_ERR_OR_NULL(list))
return -EINVAL; return;
while (list->name) { while (list->name) {
struct dentry *entry;
umode_t mode = 0; umode_t mode = 0;
if (list->proc_mode != 0000) { if (list->proc_mode != 0000) {
...@@ -321,13 +319,12 @@ int ldebugfs_add_vars(struct dentry *parent, ...@@ -321,13 +319,12 @@ int ldebugfs_add_vars(struct dentry *parent,
if (list->fops->write) if (list->fops->write)
mode |= 0200; mode |= 0200;
} }
entry = debugfs_create_file(list->name, mode, parent, debugfs_create_file(list->name, mode, parent,
list->data ?: data, list->data ?: data,
list->fops ?: &lprocfs_generic_fops list->fops ?: &lprocfs_generic_fops);
);
list++; list++;
} }
return 0; return;
} }
EXPORT_SYMBOL_GPL(ldebugfs_add_vars); EXPORT_SYMBOL_GPL(ldebugfs_add_vars);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册