From: Alex Rousskov Date: Tue, 6 Sep 2011 21:18:21 +0000 (-0600) Subject: Declare already-too-large objects with yet-unknown size as impossible to swap. X-Git-Tag: take08~25 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=03ccfa325995f8b4f2f0a51452e923cc719fa6ef;p=thirdparty%2Fsquid.git Declare already-too-large objects with yet-unknown size as impossible to swap. The original check for yet-unknown size was blocking the already-too-large check. Amos Jeffries has identified this bug during an earlier review. --- diff --git a/src/store.cc b/src/store.cc index 69da893ac8..72a127e940 100644 --- a/src/store.cc +++ b/src/store.cc @@ -1948,11 +1948,6 @@ StoreEntry::swapoutPossible() decision = MemObject::SwapOut::swImpossible; return false; // known to outgrow the limit eventually } - if (expectedEnd < 0) { - debugs(20, 3, "storeSwapOut: wait for more info: " << - store_maxobjsize); - return false; // may fit later, but will be rejected now - } // use current minimum (always known) const int64_t currentEnd = mem_obj->endOffset(); @@ -1962,6 +1957,13 @@ StoreEntry::swapoutPossible() decision = MemObject::SwapOut::swImpossible; return false; // already does not fit and may only get bigger } + + // prevent default swPossible answer for yet unknown length + if (expectedEnd < 0) { + debugs(20, 3, "storeSwapOut: wait for more info: " << + store_maxobjsize); + return false; // may fit later, but will be rejected now + } } decision = MemObject::SwapOut::swPossible;