/*
- * $Id: store_swapout.cc,v 1.27 1998/09/06 16:20:05 wessels Exp $
+ * $Id: store_swapout.cc,v 1.28 1998/09/06 17:11:34 wessels Exp $
*
* DEBUG: section 20 Storage Manager Swapout Functions
* AUTHOR: Duane Wessels
static FOCB storeSwapOutFileOpened;
static off_t storeSwapOutObjectBytesOnDisk(const MemObject *);
-static int storeSwapOutAble(const StoreEntry *e);
+static int storeSwapOutAble(const StoreEntry * e);
/* start swapping object to disk */
void
debug(20, 3) ("storeCheckSwapOut: swapout_size = %d\n",
(int) swapout_size);
if (swapout_size == 0) {
- if (e->store_status == STORE_OK) {
+ if (e->store_status == STORE_OK && !storeSwapOutWriteQueued(mem)) {
debug(20, 1) ("storeCheckSwapOut: nothing to write for STORE_OK\n");
- storeUnlinkFileno(e->swap_file_number);
- storeDirMapBitReset(e->swap_file_number);
- e->swap_file_number = -1;
+ debug(20, 1) ("\t%s\n", storeUrl(e));
+ if (e->swap_file_number > -1) {
+ storeUnlinkFileno(e->swap_file_number);
+ storeDirMapBitReset(e->swap_file_number);
+ e->swap_file_number = -1;
+ }
e->swap_status = SWAPOUT_NONE;
storeSwapOutFileClose(e);
}