[dovecot-cvs] dovecot/src/lib-index mail-custom-flags.c,1.11,1.12 mail-index-open.c,1.11,1.12 mail-index.c,1.62,1.63 mail-modifylog.c,1.31,1.32
cras at procontrol.fi
cras at procontrol.fi
Thu Oct 24 00:41:38 EEST 2002
Update of /home/cvs/dovecot/src/lib-index
In directory danu:/tmp/cvs-serv24024/lib-index
Modified Files:
mail-custom-flags.c mail-index-open.c mail-index.c
mail-modifylog.c
Log Message:
file_wait_lock() now takes timeout-parameter so one badly behaving process
won't start creating tons of lock-waiting processes.
Index: mail-custom-flags.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-custom-flags.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- mail-custom-flags.c 19 Oct 2002 16:40:17 -0000 1.11
+++ mail-custom-flags.c 23 Oct 2002 20:41:35 -0000 1.12
@@ -195,7 +195,7 @@
if (mcf->lock_type == type)
return TRUE;
- if (file_wait_lock(mcf->fd, type) < 0)
+ if (file_wait_lock(mcf->fd, type, DEFAULT_LOCK_TIMEOUT) <= 0)
return index_cf_set_syscall_error(mcf, "file_wait_lock()");
mcf->lock_type = type;
Index: mail-index-open.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-index-open.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- mail-index-open.c 20 Oct 2002 02:35:51 -0000 1.11
+++ mail-index-open.c 23 Oct 2002 20:41:35 -0000 1.12
@@ -254,7 +254,7 @@
return index_file_set_syscall_error(index, path, "open()");
/* if index is being created, we'll wait here until it's finished */
- if (file_wait_lock(fd, F_RDLCK) < 0) {
+ if (file_wait_lock(fd, F_RDLCK, DEFAULT_LOCK_TIMEOUT) <= 0) {
index_file_set_syscall_error(index, path, "file_wait_lock()");
(void)close(fd);
return FALSE;
@@ -267,7 +267,7 @@
return FALSE;
}
- if (file_wait_lock(fd, F_UNLCK) < 0) {
+ if (file_wait_lock(fd, F_UNLCK, 0) <= 0) {
index_file_set_syscall_error(index, path, "file_wait_lock()");
(void)close(fd);
return FALSE;
@@ -305,7 +305,7 @@
return FALSE;
}
- if (file_wait_lock(fd, F_WRLCK) < 0) {
+ if (file_wait_lock(fd, F_WRLCK, DEFAULT_LOCK_TIMEOUT) <= 0) {
index_file_set_syscall_error(index, path, "file_wait_lock()");
return FALSE;
}
Index: mail-index.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-index.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -d -r1.62 -r1.63
--- mail-index.c 23 Oct 2002 19:55:13 -0000 1.62
+++ mail-index.c 23 Oct 2002 20:41:35 -0000 1.63
@@ -275,7 +275,7 @@
/* use our own locking here so we don't mess up with any other
index states, like inconsistency. */
- if (file_wait_lock(index->fd, F_WRLCK) < 0)
+ if (file_wait_lock(index->fd, F_WRLCK, DEFAULT_LOCK_TIMEOUT) <= 0)
return index_set_syscall_error(index, "file_wait_lock()");
mail_index_update_header_changes(index);
@@ -284,7 +284,7 @@
if (failed)
index_set_syscall_error(index, "msync()");
- if (file_wait_lock(index->fd, F_UNLCK) < 0)
+ if (file_wait_lock(index->fd, F_UNLCK, 0) <= 0)
return index_set_syscall_error(index, "file_wait_lock()");
return !failed;
@@ -294,7 +294,7 @@
{
MailLockType old_lock_type;
- if (file_wait_lock(index->fd, F_UNLCK) < 0)
+ if (file_wait_lock(index->fd, F_UNLCK, 0) <= 0)
return index_set_syscall_error(index, "file_wait_lock()");
old_lock_type = index->lock_type;
@@ -328,7 +328,8 @@
return FALSE;
}
- if (file_wait_lock(index->fd, MAIL_LOCK_TO_FLOCK(lock_type)) < 0)
+ if (file_wait_lock(index->fd, MAIL_LOCK_TO_FLOCK(lock_type),
+ DEFAULT_LOCK_TIMEOUT) <= 0)
return index_set_syscall_error(index, "file_wait_lock()");
index->lock_type = lock_type;
@@ -355,7 +356,8 @@
if (!mail_index_lock_remove(index))
return FALSE;
- if (file_wait_lock(index->fd, MAIL_LOCK_EXCLUSIVE) < 0)
+ if (file_wait_lock(index->fd, MAIL_LOCK_EXCLUSIVE,
+ DEFAULT_LOCK_TIMEOUT) <= 0)
return index_set_syscall_error(index,
"file_wait_lock()");
index->lock_type = MAIL_LOCK_EXCLUSIVE;
Index: mail-modifylog.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-modifylog.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- mail-modifylog.c 23 Oct 2002 19:49:23 -0000 1.31
+++ mail-modifylog.c 23 Oct 2002 20:41:35 -0000 1.32
@@ -413,7 +413,7 @@
return -1;
}
- if (file_wait_lock(fd, F_RDLCK) < 0) {
+ if (file_wait_lock(fd, F_RDLCK, DEFAULT_LOCK_TIMEOUT) <= 0) {
modifylog_set_syscall_error(file, "file_wait_lock()");
(void)close(fd);
return -1;
More information about the dovecot-cvs
mailing list