2 * Display XFS quota manager statistics from /proc.
3 * Copyright (c) 2001-2003 Silicon Graphics, Inc.
14 #define XQMFILE "/proc/fs/xfs/xqm"
15 #define STATFILE "/proc/fs/xfs/stat"
16 #define XQMSTATS "/proc/fs/xfs/xqmstat"
20 int main(int argc, char **argv)
27 progname = basename(argv[0]);
29 memset(values, 0, sizeof(unsigned) * 8);
31 if ((xqm = fopen(XQMFILE, "r")) == NULL) {
32 errstr(_("The running kernel does not support XFS\n"));
35 if ((stats = fopen(XQMSTATS, "r")) == NULL) {
36 if ((stats = fopen(STATFILE, "r")) == NULL) {
37 errstr(_("The running kernel does not support XFS\n"));
41 while (!feof(stats)) {
42 fgets(buffer, 256, stats);
43 if (sscanf(buffer, "qm %u %u %u %u %u %u %u %u\n",
44 &values[0], &values[1], &values[2], &values[3],
45 &values[4], &values[5], &values[6], &values[7]) == 8)
49 printf(_("XFS Quota Manager dquot statistics\n"));
50 printf(_(" reclaims: %u\n"), values[0]);
51 printf(_(" missed reclaims: %u\n"), values[1]);
52 printf(_(" dquot dups: %u\n"), values[2]);
53 printf(_(" cache misses: %u\n"), values[3]);
54 printf(_(" cache hits: %u\n"), values[4]);
55 printf(_(" dquot wants: %u\n"), values[5]);
56 printf(_(" shake reclaims: %u\n"), values[6]);
57 printf(_(" inact reclaims: %u\n"), values[7]);
59 if (fscanf(xqm, "%u %u %u %u\n",
60 &values[0], &values[1], &values[2], &values[3]) == 4)
62 _("Maximum %u dquots (currently %u incore, %u on freelist)\n"),
63 values[0], values[1], values[3]);