Whamcloud - gitweb
land v0.9.1 on HEAD, in preparation for a 1.0.x branch
[fs/lustre-release.git] / lustre / obdfilter / lproc_obdfilter.c
1 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
2  * vim:expandtab:shiftwidth=8:tabstop=8:
3  *
4  *  Copyright (C) 2002, 2003 Cluster File Systems, Inc.
5  *
6  *   This file is part of Lustre, http://www.lustre.org.
7  *
8  *   Lustre is free software; you can redistribute it and/or
9  *   modify it under the terms of version 2 of the GNU General Public
10  *   License as published by the Free Software Foundation.
11  *
12  *   Lustre is distributed in the hope that it will be useful,
13  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *   GNU General Public License for more details.
16  *
17  *   You should have received a copy of the GNU General Public License
18  *   along with Lustre; if not, write to the Free Software
19  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20  *
21  */
22 #define DEBUG_SUBSYSTEM S_CLASS
23
24 #include <linux/version.h>
25 #include <linux/lprocfs_status.h>
26 #include <linux/obd.h>
27
28 #include "filter_internal.h"
29
30 #ifndef LPROCFS
31 static struct lprocfs_vars lprocfs_obd_vars[]  = { {0} };
32 static struct lprocfs_vars lprocfs_module_vars[] = { {0} };
33 #else
34
35 static int lprocfs_filter_rd_mntdev(char *page, char **start, off_t off,
36                                     int count, int *eof, void *data)
37 {
38         struct obd_device* obd = (struct obd_device *)data;
39
40         LASSERT(obd != NULL);
41         LASSERT(obd->u.filter.fo_vfsmnt->mnt_devname);
42         *eof = 1;
43         return snprintf(page, count, "%s\n",
44                         obd->u.filter.fo_vfsmnt->mnt_devname);
45 }
46
47 static int lprocfs_filter_rd_last_id(char *page, char **start, off_t off,
48                                      int count, int *eof, void *data)
49 {
50         struct obd_device *obd = data;
51
52         if (obd == NULL)
53                 return 0;
54
55         return snprintf(page, count, LPU64"\n",
56                         filter_last_id(&obd->u.filter, 0));
57 }
58
59 static struct lprocfs_vars lprocfs_obd_vars[] = {
60         { "uuid",         lprocfs_rd_uuid,          0, 0 },
61         { "blocksize",    lprocfs_rd_blksize,       0, 0 },
62         { "kbytestotal",  lprocfs_rd_kbytestotal,   0, 0 },
63         { "kbytesfree",   lprocfs_rd_kbytesfree,    0, 0 },
64         { "filestotal",   lprocfs_rd_filestotal,    0, 0 },
65         { "filesfree",    lprocfs_rd_filesfree,     0, 0 },
66         //{ "filegroups",   lprocfs_rd_filegroups,    0, 0 },
67         { "fstype",       lprocfs_rd_fstype,        0, 0 },
68         { "mntdev",       lprocfs_filter_rd_mntdev, 0, 0 },
69         { "last_id",      lprocfs_filter_rd_last_id, 0, 0 },
70         { 0 }
71 };
72
73 static struct lprocfs_vars lprocfs_module_vars[] = {
74         { "num_refs",     lprocfs_rd_numrefs,       0, 0 },
75         { 0 }
76 };
77
78 #endif /* LPROCFS */
79 LPROCFS_INIT_VARS(filter,lprocfs_module_vars, lprocfs_obd_vars)