static int fld_client_debugfs_init(struct lu_client_fld *fld)
{
- int rc;
-
ENTRY;
- fld->lcf_debugfs_entry = ldebugfs_register(fld->lcf_name,
- fld_debugfs_dir,
- fld_client_debugfs_list,
- fld);
- if (IS_ERR_OR_NULL(fld->lcf_debugfs_entry)) {
- CERROR("%s: LdebugFS failed in fld-init\n", fld->lcf_name);
- rc = fld->lcf_debugfs_entry ? PTR_ERR(fld->lcf_debugfs_entry)
- : -ENOMEM;
- fld->lcf_debugfs_entry = NULL;
- RETURN(rc);
- }
+ fld->lcf_debugfs_entry = debugfs_create_dir(fld->lcf_name,
+ fld_debugfs_dir);
+ ldebugfs_add_vars(fld->lcf_debugfs_entry,
+ fld_client_debugfs_list,
+ fld);
return 0;
}
extern int lprocfs_add_vars(struct proc_dir_entry *root,
struct lprocfs_vars *var, void *data);
-extern struct dentry *ldebugfs_register(const char *name,
- struct dentry *parent,
- struct lprocfs_vars *list,
- void *data);
extern struct proc_dir_entry *
lprocfs_register(const char *name, struct proc_dir_entry *parent,
struct lprocfs_vars *list, void *data);
if (IS_ERR_OR_NULL(llite_root))
goto out_ll_kset;
- sbi->ll_debugfs_entry = ldebugfs_register(name, llite_root,
- lprocfs_llite_obd_vars, sb);
- if (IS_ERR_OR_NULL(sbi->ll_debugfs_entry)) {
- err = sbi->ll_debugfs_entry ? PTR_ERR(sbi->ll_debugfs_entry) :
- -ENOMEM;
- sbi->ll_debugfs_entry = NULL;
- RETURN(err);
- }
+ sbi->ll_debugfs_entry = debugfs_create_dir(name, llite_root);
+ ldebugfs_add_vars(sbi->ll_debugfs_entry, lprocfs_llite_obd_vars, sb);
rc = ldebugfs_seq_create(sbi->ll_debugfs_entry, "dump_page_cache",0444,
&vvp_dump_pgcache_file_ops, sbi);
/* Find the type procroot and add the proc entry for this device */
obd->obd_vars = lprocfs_mdd_obd_vars;
- obd->obd_debugfs_entry = ldebugfs_register(name,
- type->typ_debugfs_entry,
- obd->obd_vars, mdd);
- if (IS_ERR_OR_NULL(obd->obd_debugfs_entry)) {
- rc = obd->obd_debugfs_entry ? PTR_ERR(obd->obd_debugfs_entry)
- : -ENOMEM;
- CERROR("Error %d setting up debugfs for %s\n",
- rc, name);
- obd->obd_debugfs_entry = NULL;
-
- kobject_put(&mdd->mdd_kobj);
- }
+ obd->obd_debugfs_entry = debugfs_create_dir(name,
+ type->typ_debugfs_entry);
+ ldebugfs_add_vars(obd->obd_debugfs_entry, obd->obd_vars, mdd);
RETURN(rc);
}
}
/* init debugfs entries, failure is not critical */
- cdt->cdt_debugfs_dir = ldebugfs_register("hsm",
- obd->obd_debugfs_entry,
- lprocfs_mdt_hsm_vars, mdt);
- if (IS_ERR_OR_NULL(cdt->cdt_debugfs_dir)) {
- rc = cdt->cdt_debugfs_dir ? PTR_ERR(cdt->cdt_debugfs_dir) :
- -ENOMEM;
- CERROR("%s: Cannot create 'hsm' directory in mdt proc dir, rc = %d\n",
- mdt_obd_name(mdt), rc);
- cdt->cdt_debugfs_dir = NULL;
- kobject_put(&cdt->cdt_hsm_kobj);
- return rc;
- }
+ cdt->cdt_debugfs_dir = debugfs_create_dir("hsm",
+ obd->obd_debugfs_entry);
+ ldebugfs_add_vars(cdt->cdt_debugfs_dir, lprocfs_mdt_hsm_vars, mdt);
return 0;
}
if (!list)
return rc;
- dt->dd_debugfs_entry = ldebugfs_register(name,
- type->typ_debugfs_entry,
- list, dt);
- if (IS_ERR_OR_NULL(dt->dd_debugfs_entry)) {
- rc = dt->dd_debugfs_entry ? PTR_ERR(dt->dd_debugfs_entry)
- : -ENOMEM;
- CERROR("%s: error %d setting up debugfs\n",
- name, rc);
- dt->dd_debugfs_entry = NULL;
- sysfs_remove_files(&dt->dd_kobj, dt->dd_def_attrs);
- kobject_put(&dt->dd_kobj);
- return rc;
- }
+ dt->dd_debugfs_entry = debugfs_create_dir(name,
+ type->typ_debugfs_entry);
+ ldebugfs_add_vars(dt->dd_debugfs_entry, list, dt);
return rc;
}
}
}
#endif
- type->typ_debugfs_entry = ldebugfs_register(name, debugfs_lustre_root,
- vars, type);
- if (IS_ERR_OR_NULL(type->typ_debugfs_entry)) {
- rc = type->typ_debugfs_entry ? PTR_ERR(type->typ_debugfs_entry)
- : -ENOMEM;
- type->typ_debugfs_entry = NULL;
- GOTO(failed, rc);
- }
+ type->typ_debugfs_entry = debugfs_create_dir(name, debugfs_lustre_root);
+ ldebugfs_add_vars(type->typ_debugfs_entry, vars, type);
rc = kobject_add(&type->typ_kobj, &lustre_kset->kobj, "%s", name);
if (rc)
while (!list_empty(&imp->imp_conn_list)) {
struct obd_import_conn *imp_conn;
- imp_conn = list_entry(imp->imp_conn_list.next,
- struct obd_import_conn, oic_item);
+ imp_conn = list_first_entry(&imp->imp_conn_list,
+ struct obd_import_conn, oic_item);
list_del_init(&imp_conn->oic_item);
ptlrpc_put_connection_superhack(imp_conn->oic_conn);
OBD_FREE(imp_conn, sizeof(*imp_conn));
/* It's possible that an export may disconnect itself, but
* nothing else will be added to this list. */
while (!list_empty(list)) {
- exp = list_entry(list->next, struct obd_export,
- exp_obd_chain);
+ exp = list_first_entry(list, struct obd_export,
+ exp_obd_chain);
/* need for safe call CDEBUG after obd_disconnect */
class_export_get(exp);
spin_lock(&obd_stale_export_lock);
if (!list_empty(&obd_stale_exports)) {
- exp = list_entry(obd_stale_exports.next,
- struct obd_export, exp_stale_list);
+ exp = list_first_entry(&obd_stale_exports,
+ struct obd_export, exp_stale_list);
list_del_init(&exp->exp_stale_list);
}
spin_unlock(&obd_stale_export_lock);
/* If there is free slot, wakeup the first waiter. */
if (!list_empty(&cli->cl_flight_waiters) &&
likely(cli->cl_rpcs_in_flight < cli->cl_max_rpcs_in_flight)) {
- orsw = list_entry(cli->cl_flight_waiters.next,
- struct obd_request_slot_waiter, orsw_entry);
+ orsw = list_first_entry(&cli->cl_flight_waiters,
+ struct obd_request_slot_waiter,
+ orsw_entry);
list_del_init(&orsw->orsw_entry);
cli->cl_rpcs_in_flight++;
wake_up(&orsw->orsw_waitq);
if (list_empty(&cli->cl_flight_waiters))
break;
- orsw = list_entry(cli->cl_flight_waiters.next,
- struct obd_request_slot_waiter, orsw_entry);
+ orsw = list_first_entry(&cli->cl_flight_waiters,
+ struct obd_request_slot_waiter,
+ orsw_entry);
list_del_init(&orsw->orsw_entry);
cli->cl_rpcs_in_flight++;
wake_up(&orsw->orsw_waitq);
}
EXPORT_SYMBOL(lprocfs_remove_proc_entry);
-struct dentry *ldebugfs_register(const char *name, struct dentry *parent,
- struct lprocfs_vars *list, void *data)
-{
- struct dentry *entry;
-
- entry = debugfs_create_dir(name, parent);
- if (IS_ERR_OR_NULL(entry)) {
- entry = entry ?: ERR_PTR(-ENOMEM);
- goto out;
- }
-
- if (!IS_ERR_OR_NULL(list)) {
- int rc;
-
- rc = ldebugfs_add_vars(entry, list, data);
- if (rc) {
- debugfs_remove(entry);
- entry = ERR_PTR(rc);
- }
- }
-out:
- return entry;
-}
-EXPORT_SYMBOL_GPL(ldebugfs_register);
-
struct proc_dir_entry *
lprocfs_register(const char *name, struct proc_dir_entry *parent,
struct lprocfs_vars *list, void *data)
if (!obd->obd_type->typ_procroot)
debugfs_vars = obd->obd_vars;
- obd->obd_debugfs_entry = ldebugfs_register(obd->obd_name,
- obd->obd_type->typ_debugfs_entry,
- debugfs_vars, obd);
- if (IS_ERR_OR_NULL(obd->obd_debugfs_entry)) {
- rc = obd->obd_debugfs_entry ? PTR_ERR(obd->obd_debugfs_entry)
- : -ENOMEM;
- CERROR("error %d setting up debugfs for %s\n",
- rc, obd->obd_name);
- obd->obd_debugfs_entry = NULL;
-
- sysfs_remove_files(&obd->obd_kset.kobj, obd->obd_attrs);
- obd->obd_attrs = NULL;
- kset_unregister(&obd->obd_kset);
- return rc;
- }
+ obd->obd_debugfs_entry = debugfs_create_dir(
+ obd->obd_name, obd->obd_type->typ_debugfs_entry);
+ ldebugfs_add_vars(obd->obd_debugfs_entry, debugfs_vars, obd);
if (obd->obd_proc_entry || !obd->obd_type->typ_procroot)
GOTO(already_registered, rc);
/* Since we register the obd device with ptlrpc / sptlrpc we
* have to register debugfs with obd_device
*/
- obd->obd_debugfs_entry = ldebugfs_register(obd->obd_name,
- obd->obd_type->typ_debugfs_entry,
- obd->obd_vars, obd);
- if (IS_ERR_OR_NULL(obd->obd_debugfs_entry)) {
- rc = obd->obd_debugfs_entry ? PTR_ERR(obd->obd_debugfs_entry)
- : -ENOMEM;
- CERROR("%s: error %d setting up debugfs\n",
- obd->obd_name, rc);
- obd->obd_debugfs_entry = NULL;
- dt_tunables_fini(&osp->opd_dt_dev);
- return;
- }
+ obd->obd_debugfs_entry = debugfs_create_dir(
+ obd->obd_name, obd->obd_type->typ_debugfs_entry);
+ ldebugfs_add_vars(obd->obd_debugfs_entry, obd->obd_vars, obd);
sptlrpc_lprocfs_cliobd_attach(obd);
ptlrpc_lprocfs_register_obd(obd);
spin_lock_init(&gss_stat_oos.oos_lock);
- gss_debugfs_dir = ldebugfs_register("gss", sptlrpc_debugfs_dir,
- gss_debugfs_vars, NULL);
- if (IS_ERR_OR_NULL(gss_debugfs_dir)) {
- rc = gss_debugfs_dir ? PTR_ERR(gss_debugfs_dir) : -ENOMEM;
- gss_debugfs_dir = NULL;
- GOTO(out, rc);
- }
+ gss_debugfs_dir = debugfs_create_dir("gss", sptlrpc_debugfs_dir);
+ ldebugfs_add_vars(gss_debugfs_dir, gss_debugfs_vars, NULL);
- gss_debugfs_dir_lk = ldebugfs_register("lgss_keyring", gss_debugfs_dir,
- gss_lk_debugfs_vars, NULL);
- if (IS_ERR(gss_debugfs_dir_lk)) {
- rc = gss_debugfs_dir_lk ? PTR_ERR(gss_debugfs_dir_lk)
- : -ENOMEM;
- gss_debugfs_dir_lk = NULL;
- GOTO(out, rc);
- }
+ gss_debugfs_dir_lk = debugfs_create_dir("lgss_keyring",
+ gss_debugfs_dir);
+ ldebugfs_add_vars(gss_debugfs_dir_lk, gss_lk_debugfs_vars, NULL);
gss_lprocfs_dir = lprocfs_register("gss", sptlrpc_lprocfs_dir,
gss_lprocfs_vars, NULL);
LASSERT(sptlrpc_debugfs_dir == NULL);
- sptlrpc_debugfs_dir = ldebugfs_register("sptlrpc", debugfs_lustre_root,
- sptlrpc_lprocfs_vars, NULL);
- if (IS_ERR_OR_NULL(sptlrpc_debugfs_dir)) {
- rc = sptlrpc_debugfs_dir ? PTR_ERR(sptlrpc_debugfs_dir)
- : -ENOMEM;
- sptlrpc_debugfs_dir = NULL;
- return rc;
- }
+ sptlrpc_debugfs_dir = debugfs_create_dir("sptlrpc",
+ debugfs_lustre_root);
+ ldebugfs_add_vars(sptlrpc_debugfs_dir, sptlrpc_lprocfs_vars, NULL);
sptlrpc_lprocfs_dir = lprocfs_register("sptlrpc", proc_lustre_root,
NULL, NULL);