afs: don't try GetDownD if nothing to get
authorDerrick Brashear <shadow@dementix.org>
Wed, 12 Oct 2011 18:34:55 +0000 (14:34 -0400)
committerDerrick Brashear <shadow@dementix.org>
Sun, 23 Oct 2011 23:07:00 +0000 (16:07 -0700)
if we "need" negative slots or caches, don't run. also,
don't stay "too full"

Change-Id: I29ef8d5fd9844a878d0c804d06aed5862a2d0df4
Reviewed-on: http://gerrit.openafs.org/5612
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>

src/afs/afs_dcache.c

index da56b7c..3c2d96d 100644 (file)
@@ -422,10 +422,16 @@ afs_CacheTruncateDaemon(void)
            for (counter = 0; counter < 10; counter++) {
                space_needed =
                    afs_blocksUsed - afs_blocksDiscarded - cb_lowat;
+               if (space_needed < 0)
+                   space_needed = 0;
                slots_needed =
                    dc_hiwat - afs_freeDCCount - afs_discardDCCount;
-               afs_GetDownD(slots_needed, &space_needed, 0);
+               if (slots_needed < 0)
+                   slots_needed = 0;
+               if (slots_needed || space_needed)
+                   afs_GetDownD(slots_needed, &space_needed, 0);
                if ((space_needed <= 0) && (slots_needed <= 0)) {
+                   afs_CacheTooFull = 0;
                    break;
                }
                if (afs_termState == AFSOP_STOP_TRUNCDAEMON)