X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;ds=inline;f=lustre%2Fost%2Flproc_ost.c;h=a22c95ce057495d9459d3aa600b4994113da03a1;hb=05ea8d2b4ce1b6794bc12d78bae9cfe1608cb4d3;hp=8a8f1e14e0cb29f2fea5c030add01abde9ebd90b;hpb=912a22b10d3d066733449c9a742212607a351bd8;p=fs%2Flustre-release.git diff --git a/lustre/ost/lproc_ost.c b/lustre/ost/lproc_ost.c index 8a8f1e1..a22c95c 100644 --- a/lustre/ost/lproc_ost.c +++ b/lustre/ost/lproc_ost.c @@ -20,14 +20,10 @@ * */ #define DEBUG_SUBSYSTEM S_OST -#include -#include -#include -#include -#include -/* Required for 64 bit division */ -#include +#include +#include + int rd_uuid(char* page, char **start, off_t off, int count, int *eof, void *data) @@ -48,57 +44,43 @@ int rd_blksize(char* page, char **start, off_t off, struct ost_obd *ost=&temp->u.ost; struct lustre_handle *conn=&ost->ost_conn; struct obd_statfs mystats; - int rc, len=0; + int len=0; - rc = obd_statfs(conn, &mystats); - if (rc) { - CERROR("ost: statfs failed: rc %d\n", rc); - return 0; - } - len+=snprintf(page, count, LPU64"\n", (__u64)(mystats.os_bsize)); + obd_statfs(conn, &mystats); + len+=snprintf(page, count, "%d\n", mystats.os_bsize); return len; } -int rd_blktotal(char* page, char **start, off_t off, +int rd_kbtotal(char* page, char **start, off_t off, int count, int *eof, void *data) { - struct obd_device* temp=(struct obd_device*)data; struct ost_obd *ost=&temp->u.ost; struct lustre_handle *conn=&ost->ost_conn; struct obd_statfs mystats; - int rc, len=0; + int len=0; + __u32 blk_size; + __u64 result; - rc = obd_statfs(conn, &mystats); - if (rc) { - CERROR("ost: statfs failed: rc %d\n", rc); - return 0; - } - len+=snprintf(page, count, LPU64"\n", (__u64)(mystats.os_blocks)); - return len; -} + obd_statfs(conn, &mystats); -int rd_blkfree(char* page, char **start, off_t off, - int count, int *eof, void *data) -{ + blk_size=mystats.os_bsize; + blk_size>>=10; - struct obd_device* temp=(struct obd_device*)data; - struct ost_obd *ost=&temp->u.ost; - struct lustre_handle *conn=&ost->ost_conn; - struct obd_statfs mystats; - int rc, len=0; + result=mystats.os_blocks; - rc = obd_statfs(conn, &mystats); - if (rc) { - CERROR("ost: statfs failed: rc %d\n", rc); - return 0; + while(blk_size>>=1){ + result<<=1; } - len+=snprintf(page, count, LPU64"\n", (__u64)(mystats.os_bfree)); + + len+=snprintf(page, count, LPU64"\n", result); return len; + } + int rd_kbfree(char* page, char **start, off_t off, int count, int *eof, void *data) { @@ -107,30 +89,27 @@ int rd_kbfree(char* page, char **start, off_t off, struct ost_obd *ost=&temp->u.ost; struct lustre_handle *conn=&ost->ost_conn; struct obd_statfs mystats; - int rc, len=0; + int len=0; __u32 blk_size; __u64 result; - __u32 remainder; - rc = obd_statfs(conn, &mystats); - if (rc) { - CERROR("ost: statfs failed: rc %d\n", rc); - return 0; - } + obd_statfs(conn, &mystats); + blk_size=mystats.os_bsize; - blk_size*=1024; + blk_size>>=10; + result=mystats.os_bfree; - remainder=do_div(result, blk_size); - len+=snprintf(page, count, LPU64"\n", \ - result); + while(blk_size>>=1){ + result<<=1; + } + len+=snprintf(page, count, LPU64"\n", result); return len; - } -int rd_numobjects(char* page, char **start, off_t off, +int rd_files(char* page, char **start, off_t off, int count, int *eof, void *data) { @@ -138,19 +117,16 @@ int rd_numobjects(char* page, char **start, off_t off, struct ost_obd *ost=&temp->u.ost; struct lustre_handle *conn=&ost->ost_conn; struct obd_statfs mystats; - int rc, len=0; + int len=0; - rc = obd_statfs(conn, &mystats); - if (rc) { - CERROR("ost: statfs failed: rc %d\n", rc); - return 0; - } - len+=snprintf(page, count, LPU64"\n", (__u64)(mystats.os_files)); + obd_statfs(conn, &mystats); + + len+=snprintf(page, count, LPU64"\n",mystats.os_files); return len; } -int rd_objfree(char* page, char **start, off_t off, +int rd_filesfree(char* page, char **start, off_t off, int count, int *eof, void *data) { @@ -158,14 +134,10 @@ int rd_objfree(char* page, char **start, off_t off, struct ost_obd *ost=&temp->u.ost; struct lustre_handle *conn=&ost->ost_conn; struct obd_statfs mystats; - int rc, len=0; + int len=0; - rc = obd_statfs(conn, &mystats); - if (rc) { - CERROR("ost: statfs failed: rc %d\n", rc); - return 0; - } - len+=snprintf(page, count, LPU64"\n", (__u64)(mystats.os_ffree)); + obd_statfs(conn, &mystats); + len+=snprintf(page, count, LPU64"\n", mystats.os_ffree); return len; } @@ -176,14 +148,27 @@ int rd_objgroups(char* page, char **start, off_t off, return 0; } -lprocfs_vars_t snmp_var_nm_1[]={ - {"snmp/uuid", rd_uuid, 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}, +struct lprocfs_vars status_var_nm_1[]={ + {"status/uuid", rd_uuid, 0}, + {"status/blocksize",rd_blksize, 0}, + {"status/kbytesfree", rd_kbfree, 0}, + {"status/kbytestotal", rd_kbtotal, 0}, + {"status/files", rd_files, 0}, + {"status/filesfree", rd_filesfree, 0}, + {"status/objectgroups", rd_objgroups, 0}, + {0} +}; + +int rd_numdevices(char* page, char **start, off_t off, + int count, int *eof, void *data) +{ + struct obd_type* class=(struct obd_type*)data; + int len=0; + len+=snprintf(page, count, "%d\n", class->typ_refcnt); + return len; +} + +struct lprocfs_vars status_class_var[]={ + {"status/num_devices", rd_numdevices, 0}, {0} };