changeset 5975:78fe45cdc192 HEAD

Added MAIL_STORAGE_FLAG_FSYNC_DISABLE and moved FSYNC_DISABLE environment handling elsewhere.
author Timo Sirainen <tss@iki.fi>
date Fri, 13 Jul 2007 00:12:21 +0300
parents b88278b5d8d3
children 3a19830ab7f6
files src/lib-storage/index/index-storage.c src/lib-storage/mail-storage.c src/lib-storage/mail-storage.h
diffstat 3 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/index-storage.c	Fri Jul 13 00:05:44 2007 +0300
+++ b/src/lib-storage/index/index-storage.c	Fri Jul 13 00:12:21 2007 +0300
@@ -354,11 +354,6 @@
 
 	i_assert(!ibox->box.opened);
 
-	if (getenv("FSYNC_DISABLE") != NULL) {
-		ibox->fsync_disable = TRUE;
-		index_flags |= MAIL_INDEX_OPEN_FLAG_FSYNC_DISABLE;
-	}
-
 	if (!ibox->move_to_memory)
 		index_flags |= MAIL_INDEX_OPEN_FLAG_CREATE;
 #ifndef MMAP_CONFLICTS_WRITE
@@ -369,6 +364,10 @@
 		index_flags |= MAIL_INDEX_OPEN_FLAG_DOTLOCK_USE_EXCL;
 	if ((storage->flags & MAIL_STORAGE_FLAG_NFS_FLUSH_INDEX) != 0)
 		index_flags |= MAIL_INDEX_OPEN_FLAG_NFS_FLUSH;
+	if ((storage->flags & MAIL_STORAGE_FLAG_FSYNC_DISABLE) != 0) {
+		index_flags |= MAIL_INDEX_OPEN_FLAG_FSYNC_DISABLE;
+		ibox->fsync_disable = TRUE;
+	}
 
 	ret = mail_index_open(ibox->index, index_flags, storage->lock_method);
 	if (ret <= 0 || ibox->move_to_memory) {
--- a/src/lib-storage/mail-storage.c	Fri Jul 13 00:05:44 2007 +0300
+++ b/src/lib-storage/mail-storage.c	Fri Jul 13 00:12:21 2007 +0300
@@ -84,6 +84,8 @@
 		*flags_r |= MAIL_STORAGE_FLAG_DOTLOCK_USE_EXCL;
 	if (getenv("MAIL_SAVE_CRLF") != NULL)
 		*flags_r |= MAIL_STORAGE_FLAG_SAVE_CRLF;
+	if (getenv("FSYNC_DISABLE") != NULL)
+		*flags_r |= MAIL_STORAGE_FLAG_FSYNC_DISABLE;
 
 	str = getenv("POP3_UIDL_FORMAT");
 	if (str != NULL && (str = strchr(str, '%')) != NULL &&
--- a/src/lib-storage/mail-storage.h	Fri Jul 13 00:05:44 2007 +0300
+++ b/src/lib-storage/mail-storage.h	Fri Jul 13 00:12:21 2007 +0300
@@ -36,6 +36,8 @@
 	/* Flush NFS caches for mail storage / index */
 	MAIL_STORAGE_FLAG_NFS_FLUSH_STORAGE	= 0x800,
 	MAIL_STORAGE_FLAG_NFS_FLUSH_INDEX	= 0x1000,
+	/* Don't use fsync() or fdatasync() */
+	MAIL_STORAGE_FLAG_FSYNC_DISABLE		= 0x2000
 };
 
 enum mailbox_open_flags {