changeset 17087:e322c40a82a9

mdbox: When purging writes new data, flush them to disk before locking the map index.
author Timo Sirainen <tss@iki.fi>
date Fri, 20 Dec 2013 19:59:22 +0200
parents bfee9f413844
children 6b8ae0ba5959
files src/lib-storage/index/dbox-multi/mdbox-purge.c
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/dbox-multi/mdbox-purge.c	Fri Dec 20 04:57:25 2013 +0200
+++ b/src/lib-storage/index/dbox-multi/mdbox-purge.c	Fri Dec 20 19:59:22 2013 +0200
@@ -383,6 +383,11 @@
 			"(%"PRIuUOFF_T" < %"PRIuUOFF_T")", offset, st.st_size);
 		ret = 0;
 	}
+	if (ret > 0 && ctx->append_ctx != NULL) {
+		/* flush writes before locking the map */
+		if (mdbox_map_append_flush(ctx->append_ctx) < 0)
+			ret = -1;
+	}
 
 	if (ret <= 0)
 		ret = -1;