X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmdt%2Fmdt_fs.c;h=8621475e3cde96ee916e5dc99c2a992e87a64593;hb=64fb5f52a2d5a1e6a7e24ffff8fd7d60007a351e;hp=7c6a489e7fdaca718bcc30469b51b5f922f10f44;hpb=7dcefb8de5aa4299f8c9c2d60ce27a6d2fac2db7;p=fs%2Flustre-release.git diff --git a/lustre/mdt/mdt_fs.c b/lustre/mdt/mdt_fs.c index 7c6a489..8621475 100644 --- a/lustre/mdt/mdt_fs.c +++ b/lustre/mdt/mdt_fs.c @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -26,8 +24,10 @@ * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. + * + * Copyright (c) 2011, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -37,9 +37,7 @@ * * Lustre Metadata Server (MDS) filesystem interface code */ -#ifndef EXPORT_SYMTAB -# define EXPORT_SYMTAB -#endif + #define DEBUG_SUBSYSTEM S_MDS #include "mdt_internal.h" @@ -50,6 +48,9 @@ int mdt_export_stats_init(struct obd_device *obd, { lnet_nid_t *client_nid = localdata; int rc, newnid; + ENTRY; + + LASSERT(!obd->obd_uses_nid_stats); rc = lprocfs_exp_setup(exp, client_nid, &newnid); if (rc) { @@ -57,23 +58,25 @@ int mdt_export_stats_init(struct obd_device *obd, * /proc entries */ if (rc == -EALREADY) rc = 0; - return rc; + RETURN(rc); } - - if ((obd->md_stats == NULL) && - (rc = lprocfs_alloc_md_stats(obd, LPROC_MDT_NR))) - return rc; if (newnid) { - /* Always add in ldlm_stats */ - exp->exp_nid_stats->nid_ldlm_stats = - lprocfs_alloc_stats(LDLM_LAST_OPC - LDLM_FIRST_OPC, - LPROCFS_STATS_FLAG_NOPERCPU); - if (exp->exp_nid_stats->nid_ldlm_stats == NULL) - return -ENOMEM; - lprocfs_init_ldlm_stats(exp->exp_nid_stats->nid_ldlm_stats); - rc = lprocfs_register_stats(exp->exp_nid_stats->nid_proc, - "ldlm_stats", - exp->exp_nid_stats->nid_ldlm_stats); + struct nid_stat *tmp = exp->exp_nid_stats; + + tmp->nid_stats = lprocfs_alloc_stats(LPROC_MDT_LAST, + LPROCFS_STATS_FLAG_NOPERCPU); + if (tmp->nid_stats == NULL) + RETURN(-ENOMEM); + 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: return rc; }