diff src/lib-index/mail-index.c @ 5278:d569caa88a66 HEAD

If we run out of disk space, move to in-memory indexes.
author Timo Sirainen <tss@iki.fi>
date Sun, 11 Mar 2007 18:10:41 +0200
parents 7641e625fbd5
children 09b5de33144e
line wrap: on
line diff
--- a/src/lib-index/mail-index.c	Sun Mar 11 18:02:23 2007 +0200
+++ b/src/lib-index/mail-index.c	Sun Mar 11 18:10:41 2007 +0200
@@ -1579,7 +1579,7 @@
 		return -1;
 	}
 
-	if (index->fd == -1) {
+	if (index->map == NULL) {
 		mail_index_header_init(&hdr);
 		index->hdr = &hdr;
 
@@ -1912,10 +1912,13 @@
 	}
 
 	/* move index map to memory */
-	map = mail_index_map_clone(index->map, index->map->hdr.record_size);
-	mail_index_unmap(index, &index->map);
-	index->map = map;
-	index->hdr = &map->hdr;
+	if (!MAIL_INDEX_MAP_IS_IN_MEMORY(index->map)) {
+		map = mail_index_map_clone(index->map,
+					   index->map->hdr.record_size);
+		mail_index_unmap(index, &index->map);
+		index->map = map;
+		index->hdr = &map->hdr;
+	}
 
 	if (index->log != NULL) {
 		/* move transaction log to memory */