From: wessels <> Date: Fri, 9 Oct 1998 23:46:35 +0000 (+0000) Subject: Changed the policy of storeReleaseRequest() which used to require X-Git-Tag: SQUID_3_0_PRE1~2600 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=97dad8a93568b1822c9ce2b020295a797b99d937;p=thirdparty%2Fsquid.git Changed the policy of storeReleaseRequest() which used to require the entry to be locked. This was to prevent RELEASE_REQUEST entries from getting stranded. But there were some places where we manually set the RELEASE_REQUEST bits for maybe-unlocked objects. This sucks because we also need to clear ENTRY_CACHABLE if we set RELEASE_REQUEST. Now anyone can call storeReleaseRequest(). --- diff --git a/src/store.cc b/src/store.cc index 16fa5911bf..65d40818fb 100644 --- a/src/store.cc +++ b/src/store.cc @@ -1,6 +1,6 @@ /* - * $Id: store.cc,v 1.466 1998/10/08 20:10:24 wessels Exp $ + * $Id: store.cc,v 1.467 1998/10/09 17:46:35 wessels Exp $ * * DEBUG: section 20 Storage Manager * AUTHOR: Harvest Derived @@ -227,7 +227,6 @@ storeReleaseRequest(StoreEntry * e) { if (EBIT_TEST(e->flags, RELEASE_REQUEST)) return; - assert(storeEntryLocked(e)); debug(20, 3) ("storeReleaseRequest: '%s'\n", storeKeyText(e->key)); EBIT_SET(e->flags, RELEASE_REQUEST); /* @@ -787,8 +786,7 @@ storeRelease(StoreEntry * e) debug(20, 2) ("storeRelease: Delaying release until store is rebuilt: '%s'\n", storeUrl(e)); storeExpireNow(e); - storeSetPrivateKey(e); - EBIT_SET(e->flags, RELEASE_REQUEST); + storeReleaseRequest(e); return; } #if USE_ASYNC_IO diff --git a/src/store_rebuild.cc b/src/store_rebuild.cc index 102bd32627..c50c9f4627 100644 --- a/src/store_rebuild.cc +++ b/src/store_rebuild.cc @@ -1,6 +1,6 @@ /* - * $Id: store_rebuild.cc,v 1.51 1998/09/19 17:06:15 wessels Exp $ + * $Id: store_rebuild.cc,v 1.52 1998/10/09 17:46:37 wessels Exp $ * * DEBUG: section 20 Store Rebuild Routines * AUTHOR: Duane Wessels @@ -273,8 +273,7 @@ storeRebuildFromSwapLog(rebuild_dir * d) * the cleanup procedure. */ storeExpireNow(e); - storeSetPrivateKey(e); - EBIT_SET(e->flags, RELEASE_REQUEST); + storeReleaseRequest(e); if (e->swap_file_number > -1) { storeDirMapBitReset(e->swap_file_number); e->swap_file_number = -1; @@ -355,8 +354,7 @@ storeRebuildFromSwapLog(rebuild_dir * d) /* key already exists, this swapfile not being used */ /* junk old, load new */ storeExpireNow(e); - storeSetPrivateKey(e); - EBIT_SET(e->flags, RELEASE_REQUEST); + storeReleaseRequest(e); if (e->swap_file_number > -1) { storeDirMapBitReset(e->swap_file_number); e->swap_file_number = -1;