From: thantry Date: Wed, 23 Oct 2002 03:01:45 +0000 (+0000) Subject: File containing read/write fptr implementations for mount_point. To be added to make... X-Git-Tag: v1_7_100~4430 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=e14f09844b26ba2bdf34850c04a3ef389ca201ea;ds=sidebyside File containing read/write fptr implementations for mount_point. To be added to make path after review --- diff --git a/lustre/llite/lproc_llite.c b/lustre/llite/lproc_llite.c new file mode 100644 index 0000000..efa28f3 --- /dev/null +++ b/lustre/llite/lproc_llite.c @@ -0,0 +1,179 @@ +/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- + * vim:expandtab:shiftwidth=8:tabstop=8: + * + * Copyright (C) 2002 Cluster File Systems, Inc. + * + * This file is part of Lustre, http://www.lustre.org. + * + * Lustre is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public + * License as published by the Free Software Foundation. + * + * Lustre is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Lustre; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ +#define DEBUG_SUBSYSTEM S_LLITE +#include +#include +#include +#include +#include +#include +#include + + +int rd_path(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + + return 0; + +} +int rd_fstype(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + int len=0; + struct super_block *sb=(struct super_block*)data; + + len+=snprintf(page, count, "%s\n", sb->s_type->name); + return len; +} +int rd_blksize(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + int len=0; + struct super_block *sb=(struct super_block*)data; + struct statfs mystats; + (sb->s_op->statfs)(sb, &mystats); + len+=snprintf(page, count, LPU64"\n", (__u64)(mystats.f_bsize)); + return len; + +} +int rd_blktotal(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + int len=0; + struct super_block *sb=(struct super_block*)data; + struct statfs mystats; + (sb->s_op->statfs)(sb, &mystats); + len+=snprintf(page, count, LPU64"\n", (__u64)(mystats.f_blocks)); + return len; + +} + +int rd_blkfree(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + int len=0; + struct super_block *sb=(struct super_block*)data; + struct statfs mystats; + (sb->s_op->statfs)(sb, &mystats); + len+=snprintf(page, count, LPU64"\n", (__u64)(mystats.f_bfree)); + return len; + + +} + +int rd_kbfree(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + int len=0; + struct super_block *sb=(struct super_block*)data; + struct statfs mystats; + long blk_size=0; + + (sb->s_op->statfs)(sb, &mystats); + blk_size=mystats.f_bsize; + + len+=snprintf(page, count, LPU64"\n", \ + (__u64)((mystats.f_bfree)/(blk_size*1024))); + return len; + +} + +int rd_numobjects(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + + int len=0; + struct super_block *sb=(struct super_block*)data; + + struct statfs mystats; + + + (sb->s_op->statfs)(sb, &mystats); + + len+=snprintf(page, count, LPU64"\n", (__u64)(mystats.f_files)); + return len; +} + +int rd_objfree(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + + int len=0; + struct super_block *sb=(struct super_block*)data; + + struct statfs mystats; + + + (sb->s_op->statfs)(sb, &mystats); + + len+=snprintf(page, count, LPU64"\n", (__u64)(mystats.f_ffree)); + return len; +} + +int rd_objgroups(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + return 0; +} +int rd_uuid(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + int len=0; + struct super_block *sb=(struct super_block*)data; + struct ll_sb_info *sbi=ll_s2sbi(sb); + len+=snprintf(page, count, "%s\n", sbi->ll_sb_uuid); + return len; + +} +int rd_dev_name(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + int len=0; + struct obd_device* dev=(struct obd_device*)data; + len+=snprintf(page, count, "%s\n", dev->obd_name); + return len; +} + +int rd_dev_uuid(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + int len=0; + struct obd_device* dev=(struct obd_device*)data; + len+=snprintf(page, count, "%s\n", dev->obd_uuid); + return len; +} + + +lprocfs_vars_t snmp_var_nm_1[]={ + {"snmp/uuid", rd_uuid, 0}, + {"snmp/mntpt_path", rd_path, 0}, + {"snmp/fs_type", rd_fstype, 0}, + {"snmp/f_blocksize",rd_blksize, 0}, + {"snmp/f_blockstotal",rd_blktotal, 0}, + {"snmp/f_blocksfree",rd_blkfree, 0}, + {"snmp/f_kbytesfree", rd_kbfree, 0}, + {"snmp/f_objects", rd_numobjects, 0}, + {"snmp/f_objectsfree", rd_objfree, 0}, + {"snmp/f_objectgroups", rd_objgroups, 0}, + {0} +};