X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmdt%2Fmdt_fs.c;h=d2bc968dbbb41a4521553e92de9a1d6745805093;hb=30d23e8d36d8b0b4d2571e7801e3643b0e7ab22e;hp=aff8feba7f2064bed2250a2091cc84f677245a78;hpb=f79a2f1a19decfd1bed4857772e63dee01e151b2;p=fs%2Flustre-release.git diff --git a/lustre/mdt/mdt_fs.c b/lustre/mdt/mdt_fs.c index aff8feb..d2bc968 100644 --- a/lustre/mdt/mdt_fs.c +++ b/lustre/mdt/mdt_fs.c @@ -28,6 +28,9 @@ /* * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. + * + * Copyright (c) 2011 Whamcloud, Inc. + * */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -46,14 +49,13 @@ int mdt_export_stats_init(struct obd_device *obd, struct obd_export *exp, - int reconnect, void *localdata) { lnet_nid_t *client_nid = localdata; int rc, newnid; ENTRY; - rc = lprocfs_exp_setup(exp, client_nid, reconnect, &newnid); + rc = lprocfs_exp_setup(exp, client_nid, &newnid); if (rc) { /* Mask error for already created * /proc entries */ @@ -62,12 +64,26 @@ int mdt_export_stats_init(struct obd_device *obd, RETURN(rc); } if (newnid) { - rc = lprocfs_nid_ldlm_stats_init(exp->exp_nid_stats); + struct nid_stat *tmp = exp->exp_nid_stats; + int num_stats; + + num_stats = (sizeof(*obd->obd_type->typ_md_ops) / sizeof(void *)) + + LPROC_MDT_LAST; + tmp->nid_stats = lprocfs_alloc_stats(num_stats, + LPROCFS_STATS_FLAG_NOPERCPU); + if (tmp->nid_stats == NULL) + return -ENOMEM; + lprocfs_init_mps_stats(LPROC_MDT_LAST, tmp->nid_stats); + mdt_stats_counter_init(tmp->nid_stats); + rc = lprocfs_register_stats(tmp->nid_proc, "stats", + tmp->nid_stats); + if (rc) + GOTO(clean, rc); + rc = lprocfs_nid_ldlm_stats_init(tmp); if (rc) GOTO(clean, rc); } RETURN(0); clean: - lprocfs_exp_cleanup(exp); return rc; }