The unified diff between revisions [e6beb7c9..] and [eeec8cbf..] is displayed below. It can also be downloaded as a raw diff.

#
#
# patch "src/fs/coss/store_dir_coss.c"
#  from [fb849ed24cdd3b4f19ee54a48d3d6d2ba24ba36c]
#    to [bd31c1d0a49adf2f5f2d07cee7ff86633f9cac86]
#
============================================================
--- src/fs/coss/store_dir_coss.c	fb849ed24cdd3b4f19ee54a48d3d6d2ba24ba36c
+++ src/fs/coss/store_dir_coss.c	bd31c1d0a49adf2f5f2d07cee7ff86633f9cac86
@@ -194,6 +194,7 @@ storeCossRemove(SwapDir * sd, StoreEntry
 {
     CossInfo *cs = (CossInfo *) sd->fsdata;
     int stripe;
+    //debug(1, 1) ("storeCossRemove: %x: %d/%d\n", e, (int) e->swap_dirn, (e) e->swap_filen);
     CossIndexNode *coss_node = e->repl.data;
     assert(e->swap_filen >= 0);
     e->repl.data = NULL;
@@ -1130,8 +1131,9 @@ storeCoss_AddStoreEntry(RebuildState *rb
 	EBIT_CLR(ne->flags, ENTRY_VALIDATED);
 	storeHashInsert(ne, key);    /* do it after we clear KEY_PRIVATE */
 	storeCossAdd(SD, ne, cs->rebuild.curstripe);
-
 	storeEntryDump(ne, 5);
+	assert(ne->repl.data != NULL);
+	assert(e->repl.data == NULL);
 }

 static void
@@ -1140,9 +1142,10 @@ storeCoss_DeleteStoreEntry(RebuildState
 	SwapDir *SD = rb->sd;
 	assert(rb->counts.objcount >= 0);
 	rb->counts.objcount--;
+	storeCossRemove(SD, e);
+	e->swap_filen = -1;
 	storeExpireNow(e);
 	storeReleaseRequest(e);
-	storeCossRemove(SD, e);
 	storeRelease(e);
 }