#include <obd.h>
#include <obd_class.h>
#include <lustre_mds.h>
-#include <lustre_mdt.h>
#include <lprocfs_status.h>
#include "mdt_internal.h"
#include <lnet/lib-lnet.h>
lprocfs_mdt_init_vars(&lvars);
rc = lprocfs_obd_setup(obd, lvars.obd_vars);
if (rc) {
- CERROR("Can't init lprocfs, rc %d\n", rc);
+ CERROR("%s: cannot create proc entries: rc = %d\n",
+ mdt_obd_name(mdt), rc);
+ return rc;
+ }
+ rc = hsm_cdt_procfs_init(mdt);
+ if (rc) {
+ CERROR("%s: cannot create hsm proc entries: rc = %d\n",
+ mdt_obd_name(mdt), rc);
return rc;
}
ptlrpc_lprocfs_register_obd(obd);
rc = lprocfs_alloc_md_stats(obd, LPROC_MDT_LAST);
if (rc)
return rc;
- mdt_stats_counter_init(obd->md_stats);
+ mdt_stats_counter_init(obd->obd_md_stats);
rc = lprocfs_job_stats_init(obd, LPROC_MDT_LAST,
mdt_stats_counter_init);
{
struct obd_device *obd = mdt2obd_dev(mdt);
- if (obd->obd_proc_exports_entry) {
- lprocfs_remove_proc_entry("clear", obd->obd_proc_exports_entry);
- obd->obd_proc_exports_entry = NULL;
- }
- lprocfs_free_per_client_stats(obd);
- lprocfs_obd_cleanup(obd);
- ptlrpc_lprocfs_unregister_obd(obd);
- lprocfs_free_md_stats(obd);
- lprocfs_free_obd_stats(obd);
+ if (obd->obd_proc_exports_entry) {
+ lprocfs_remove_proc_entry("clear", obd->obd_proc_exports_entry);
+ obd->obd_proc_exports_entry = NULL;
+ }
+ lprocfs_free_per_client_stats(obd);
+ lprocfs_obd_cleanup(obd);
+ hsm_cdt_procfs_fini(mdt);
+ ptlrpc_lprocfs_unregister_obd(obd);
+ lprocfs_free_md_stats(obd);
+ lprocfs_free_obd_stats(obd);
lprocfs_job_stats_fini(obd);
}
if (rc)
return rc;
- if (val < 0 || val > 1)
+ if (val > 1)
return -ERANGE;
mdt->mdt_enable_remote_dir = val;
}
static struct lprocfs_vars lprocfs_mdt_obd_vars[] = {
- { "uuid", lprocfs_rd_uuid, 0, 0 },
- { "recovery_status", lprocfs_obd_rd_recovery_status, 0, 0 },
- { "num_exports", lprocfs_rd_num_exports, 0, 0 },
- { "identity_expire", lprocfs_rd_identity_expire,
- lprocfs_wr_identity_expire, 0 },
- { "identity_acquire_expire", lprocfs_rd_identity_acquire_expire,
- lprocfs_wr_identity_acquire_expire, 0 },
- { "identity_upcall", lprocfs_rd_identity_upcall,
- lprocfs_wr_identity_upcall, 0 },
- { "identity_flush", 0, lprocfs_wr_identity_flush, 0 },
- { "identity_info", 0, lprocfs_wr_identity_info, 0 },
- { "capa", lprocfs_rd_capa,
- lprocfs_wr_capa, 0 },
- { "capa_timeout", lprocfs_rd_capa_timeout,
- lprocfs_wr_capa_timeout, 0 },
- { "capa_key_timeout", lprocfs_rd_ck_timeout,
- lprocfs_wr_ck_timeout, 0 },
- { "capa_count", lprocfs_rd_capa_count, 0, 0 },
- { "site_stats", lprocfs_rd_site_stats, 0, 0 },
- { "evict_client", 0, lprocfs_mdt_wr_evict_client, 0 },
- { "hash_stats", lprocfs_obd_rd_hash, 0, 0 },
- { "sec_level", lprocfs_rd_sec_level,
- lprocfs_wr_sec_level, 0 },
- { "commit_on_sharing", lprocfs_rd_cos, lprocfs_wr_cos, 0 },
- { "root_squash", lprocfs_rd_root_squash,
- lprocfs_wr_root_squash, 0 },
- { "nosquash_nids", lprocfs_rd_nosquash_nids,
- lprocfs_wr_nosquash_nids, 0 },
- { "som", lprocfs_rd_mdt_som,
- lprocfs_wr_mdt_som, 0 },
- { "instance", lprocfs_target_rd_instance, 0 },
- { "ir_factor", lprocfs_obd_rd_ir_factor,
- lprocfs_obd_wr_ir_factor, 0 },
+ { "uuid", lprocfs_rd_uuid, NULL,
+ NULL, NULL, 0 },
+ { "recovery_status", lprocfs_obd_rd_recovery_status, NULL,
+ NULL, NULL, 0 },
+ { "num_exports", lprocfs_rd_num_exports, NULL,
+ NULL, NULL, 0 },
+ { "identity_expire", lprocfs_rd_identity_expire,
+ lprocfs_wr_identity_expire,
+ NULL, NULL, 0 },
+ { "identity_acquire_expire", lprocfs_rd_identity_acquire_expire,
+ lprocfs_wr_identity_acquire_expire,
+ NULL, NULL, 0 },
+ { "identity_upcall", lprocfs_rd_identity_upcall,
+ lprocfs_wr_identity_upcall,
+ NULL, NULL, 0 },
+ { "identity_flush", NULL, lprocfs_wr_identity_flush,
+ NULL, NULL, 0 },
+ { "identity_info", NULL, lprocfs_wr_identity_info,
+ NULL, NULL, 0 },
+ { "capa", lprocfs_rd_capa,
+ lprocfs_wr_capa,
+ NULL, NULL, 0 },
+ { "capa_timeout", lprocfs_rd_capa_timeout,
+ lprocfs_wr_capa_timeout,
+ NULL, NULL, 0 },
+ { "capa_key_timeout", lprocfs_rd_ck_timeout,
+ lprocfs_wr_ck_timeout,
+ NULL, NULL, 0 },
+ { "capa_count", lprocfs_rd_capa_count, NULL,
+ NULL, NULL, 0 },
+ { "site_stats", lprocfs_rd_site_stats, NULL,
+ NULL, NULL, 0 },
+ { "evict_client", NULL, lprocfs_mdt_wr_evict_client,
+ NULL, NULL, 0 },
+ { "hash_stats", lprocfs_obd_rd_hash, NULL,
+ NULL, NULL, 0 },
+ { "sec_level", lprocfs_rd_sec_level,
+ lprocfs_wr_sec_level,
+ NULL, NULL, 0 },
+ { "commit_on_sharing", lprocfs_rd_cos, lprocfs_wr_cos,
+ NULL, NULL, 0 },
+ { "root_squash", lprocfs_rd_root_squash,
+ lprocfs_wr_root_squash,
+ NULL, NULL, 0 },
+ { "nosquash_nids", lprocfs_rd_nosquash_nids,
+ lprocfs_wr_nosquash_nids,
+ NULL, NULL, 0 },
+ { "som", lprocfs_rd_mdt_som,
+ lprocfs_wr_mdt_som,
+ NULL, NULL, 0 },
+ { "instance", lprocfs_target_rd_instance, NULL,
+ NULL, NULL, 0},
+ { "ir_factor", lprocfs_obd_rd_ir_factor,
+ lprocfs_obd_wr_ir_factor,
+ NULL, NULL, 0 },
{ "job_cleanup_interval", lprocfs_rd_job_interval,
- lprocfs_wr_job_interval, 0 },
+ lprocfs_wr_job_interval,
+ NULL, NULL, 0 },
{ "enable_remote_dir", lprocfs_rd_enable_remote_dir,
- lprocfs_wr_enable_remote_dir, 0},
+ lprocfs_wr_enable_remote_dir,
+ NULL, NULL, 0},
{ "enable_remote_dir_gid", lprocfs_rd_enable_remote_dir_gid,
- lprocfs_wr_enable_remote_dir_gid, 0},
+ lprocfs_wr_enable_remote_dir_gid,
+ NULL, NULL, 0},
+ { "hsm_control", lprocfs_rd_hsm_cdt_control,
+ lprocfs_wr_hsm_cdt_control,
+ NULL, NULL, 0 },
{ 0 }
};
static struct lprocfs_vars lprocfs_mdt_module_vars[] = {
- { "num_refs", lprocfs_rd_numrefs, 0, 0 },
+ { "num_refs", lprocfs_rd_numrefs, NULL,
+ NULL, NULL, 0 },
{ 0 }
};
}
struct lprocfs_vars lprocfs_mds_obd_vars[] = {
- { "uuid", lprocfs_rd_uuid, 0, 0 },
+ { "uuid", lprocfs_rd_uuid, NULL, NULL, NULL, 0 },
{ 0 }
};
struct lprocfs_vars lprocfs_mds_module_vars[] = {
- { "num_refs", lprocfs_rd_numrefs, 0, 0 },
+ { "num_refs", lprocfs_rd_numrefs, NULL, NULL, NULL, 0 },
{ 0 }
};
{
struct obd_export *exp = req->rq_export;
- if (exp->exp_obd && exp->exp_obd->md_stats)
- lprocfs_counter_incr(exp->exp_obd->md_stats, opcode);
+ if (exp->exp_obd && exp->exp_obd->obd_md_stats)
+ lprocfs_counter_incr(exp->exp_obd->obd_md_stats, opcode);
if (exp->exp_nid_stats && exp->exp_nid_stats->nid_stats != NULL)
lprocfs_counter_incr(exp->exp_nid_stats->nid_stats, opcode);
if (exp->exp_obd && exp->exp_obd->u.obt.obt_jobstats.ojs_hash &&