disabled nfsd values if they are all empty
box@home root committed
Mar 22, 2015 at 00:55 UTC
864b288f84cde0ebc219a8332ade5d178ed342d0
1 file changed
+16
-5
src/proc_net_rpc_nfsd.c
+16
-5
@@ -196,7 +196,10 @@ int do_proc_net_rpc_nfsd(int update_every, unsigned long long dt) {
196
rc_hits = strtoull(procfile_lineword(ff, l, 1), NULL, 10);
197
rc_misses = strtoull(procfile_lineword(ff, l, 2), NULL, 10);
198
rc_nocache = strtoull(procfile_lineword(ff, l, 3), NULL, 10);
199
- do_rc = 2;
199
+
200
+ unsigned long long sum = rc_hits + rc_misses + rc_nocache;
201
+ if(sum == 0ULL) do_rc = -1;
202
+ else do_rc = 2;
203
}
204
else if(do_fh == 1 && strcmp(type, "fh") == 0) {
205
if(words < 6) {
@@ -210,7 +213,9 @@ int do_proc_net_rpc_nfsd(int update_every, unsigned long long dt) {
213
fh_dir_not_in_dcache = strtoull(procfile_lineword(ff, l, 4), NULL, 10);
214
fh_non_dir_not_in_dcache = strtoull(procfile_lineword(ff, l, 5), NULL, 10);
215
213
- do_fh = 2;
216
+ unsigned long long sum = fh_stale + fh_total_lookups + fh_anonymous_lookups + fh_dir_not_in_dcache + fh_non_dir_not_in_dcache;
217
+ if(sum == 0ULL) do_fh = -1;
218
+ else do_fh = 2;
219
}
220
else if(do_io == 1 && strcmp(type, "io") == 0) {
221
if(words < 3) {
@@ -221,7 +226,9 @@ int do_proc_net_rpc_nfsd(int update_every, unsigned long long dt) {
226
io_read = strtoull(procfile_lineword(ff, l, 1), NULL, 10);
227
io_write = strtoull(procfile_lineword(ff, l, 2), NULL, 10);
228
224
- do_io = 2;
229
+ unsigned long long sum = io_read + io_write;
230
+ if(sum == 0ULL) do_io = -1;
231
+ else do_io = 2;
232
}
233
else if(do_th == 1 && strcmp(type, "th") == 0) {
234
if(words < 13) {
@@ -294,7 +301,9 @@ int do_proc_net_rpc_nfsd(int update_every, unsigned long long dt) {
301
net_tcp_count = strtoull(procfile_lineword(ff, l, 3), NULL, 10);
302
net_tcp_connections = strtoull(procfile_lineword(ff, l, 4), NULL, 10);
303
297
- do_net = 2;
304
+ unsigned long long sum = net_count + net_udp_count + net_tcp_count + net_tcp_connections;
305
+ if(sum == 0ULL) do_net = -1;
306
+ else do_net = 2;
307
}
308
else if(do_rpc == 1 && strcmp(type, "rpc") == 0) {
309
if(words < 6) {
@@ -307,7 +316,9 @@ int do_proc_net_rpc_nfsd(int update_every, unsigned long long dt) {
316
rpc_bad_auth = strtoull(procfile_lineword(ff, l, 3), NULL, 10);
317
rpc_bad_client = strtoull(procfile_lineword(ff, l, 4), NULL, 10);
318
310
- do_rpc = 2;
319
+ unsigned long long sum = rpc_count + rpc_bad_format + rpc_bad_auth + rpc_bad_client;
320
+ if(sum == 0ULL) do_rpc = -1;
321
+ else do_rpc = 2;
322
}
323
else if(do_proc2 == 1 && strcmp(type, "proc2") == 0) {
324
// the first number is the count of numbers present