dovecot-2.2: lib: file_create_locked() lock method is now config...

dovecot at dovecot.org dovecot at dovecot.org
Sun May 24 17:26:36 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/57f8c2a6209b
changeset: 18744:57f8c2a6209b
user:      Timo Sirainen <tss at iki.fi>
date:      Sun May 24 13:24:19 2015 -0400
description:
lib: file_create_locked() lock method is now configurable

diffstat:

 src/lib/file-create-locked.c |  5 ++---
 src/lib/file-create-locked.h |  3 ++-
 2 files changed, 4 insertions(+), 4 deletions(-)

diffs (40 lines):

diff -r 1d088dc567bd -r 57f8c2a6209b src/lib/file-create-locked.c
--- a/src/lib/file-create-locked.c	Sun May 24 13:22:56 2015 -0400
+++ b/src/lib/file-create-locked.c	Sun May 24 13:24:19 2015 -0400
@@ -24,7 +24,7 @@
 		*error_r = t_strdup_printf("fstat(%s) failed: %m", path);
 		return -1;
 	}
-	if (file_wait_lock_error(fd, path, F_WRLCK, FILE_LOCK_METHOD_FCNTL,
+	if (file_wait_lock_error(fd, path, F_WRLCK, set->lock_method,
 				 set->lock_timeout_secs, lock_r, error_r) <= 0)
 		return -1;
 	if (stat(path, &st2) == 0) {
@@ -63,8 +63,7 @@
 		return -1;
 	}
 	if (file_try_lock_error(fd, str_c(temp_path), F_WRLCK,
-				FILE_LOCK_METHOD_FCNTL,
-				lock_r, error_r) <= 0) {
+				set->lock_method, lock_r, error_r) <= 0) {
 	} else if (link(str_c(temp_path), path) < 0) {
 		if (errno == EEXIST) {
 			/* just created by somebody else */
diff -r 1d088dc567bd -r 57f8c2a6209b src/lib/file-create-locked.h
--- a/src/lib/file-create-locked.h	Sun May 24 13:22:56 2015 -0400
+++ b/src/lib/file-create-locked.h	Sun May 24 13:24:19 2015 -0400
@@ -1,12 +1,13 @@
 #ifndef FILE_CREATE_LOCKED_H
 #define FILE_CREATE_LOCKED_H
 
-struct file_lock;
+#include "file-lock.h"
 
 struct file_create_settings {
 	/* 0 = try locking without waiting */
 	unsigned int lock_timeout_secs;
 
+	enum file_lock_method lock_method;
 	/* 0 = 0600 */
 	int mode;
 	/* 0 = default */


More information about the dovecot-cvs mailing list