afs: fs getcacheparms miscounts zero-length dcaches 46/12346/3
authorMark Vitale <mvitale@sinenomine.net>
Tue, 12 Jan 2016 22:50:36 +0000 (17:50 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Sun, 11 Dec 2016 21:53:33 +0000 (16:53 -0500)
When fs getcacheparms is issued with the -excessive option, it
tabulates all in-memory dcaches ("DCentries") by size.

dcaches with validPos == 0 were being tabulated in the 4k-16k bucket.

Fix the first comparison in the 'sieve' so these dcaches will be counted
in the correct 0-4k bucket instead.

Introduced by commit 176c2fddb95ced6c13e04e7492fc09b5551f273c

Change-Id: I60acb0f115dad9f7951f0b17e5b3e37dc94321b9
Reviewed-on: https://gerrit.openafs.org/12346
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/afs/afs_pioctl.c

index 6d5b7cc..3d15325 100644 (file)
@@ -2953,7 +2953,7 @@ DECL_PIOCTL(PGetCacheSize)
            if (tdc){
                results[9]++;
                size = tdc->validPos;
-               if ( 0 < size && size < (1<<12) ) results[10]++;
+               if ( 0 <= size && size < (1<<12) ) results[10]++;
                else if (size < (1<<14) ) results[11]++;
                else if (size < (1<<16) ) results[12]++;
                else if (size < (1<<18) ) results[13]++;