[dovecot-cvs] dovecot/src/lib-index mail-index-open.c,1.15,1.16 mail-index.c,1.71,1.72
cras at procontrol.fi
cras at procontrol.fi
Wed Nov 13 02:43:16 EET 2002
Update of /home/cvs/dovecot/src/lib-index
In directory danu:/tmp/cvs-serv20308
Modified Files:
mail-index-open.c mail-index.c
Log Message:
If mbox opening fails, don't leave the lock files lying around.
Index: mail-index-open.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-index-open.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- mail-index-open.c 6 Nov 2002 07:08:04 -0000 1.15
+++ mail-index-open.c 13 Nov 2002 00:43:14 -0000 1.16
@@ -242,9 +242,6 @@
if (!mail_index_open_init(index, update_recent))
return FALSE;
- if (!index->set_lock(index, MAIL_LOCK_UNLOCK))
- return FALSE;
-
return TRUE;
}
@@ -252,7 +249,7 @@
int update_recent, int fast)
{
MailIndexHeader hdr;
- int fd;
+ int fd, failed;
/* the index file should already be checked that it exists and
we're compatible with it. */
@@ -285,7 +282,12 @@
index->filepath = i_strdup(path);
index->indexid = hdr.indexid;
- if (!index_open_and_fix(index, update_recent, fast)) {
+ failed = !index_open_and_fix(index, update_recent, fast);
+
+ if (!index->set_lock(index, MAIL_LOCK_UNLOCK))
+ failed = TRUE;
+
+ if (failed) {
mail_index_close(index);
return FALSE;
}
@@ -462,6 +464,8 @@
return TRUE;
} while (0);
+
+ (void)index->set_lock(index, MAIL_LOCK_UNLOCK);
mail_index_close(index);
return FALSE;
Index: mail-index.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-index.c,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -d -r1.71 -r1.72
--- mail-index.c 5 Nov 2002 07:26:56 -0000 1.71
+++ mail-index.c 13 Nov 2002 00:43:14 -0000 1.72
@@ -418,7 +418,8 @@
}
if (index->lock_type == MAIL_LOCK_EXCLUSIVE) {
- mail_modifylog_notify_lock_drop(index->modifylog);
+ if (index->modifylog != NULL)
+ mail_modifylog_notify_lock_drop(index->modifylog);
/* dropping exclusive lock (either unlock or to shared) */
keep_fsck = (index->set_flags & MAIL_INDEX_FLAG_FSCK) != 0;
More information about the dovecot-cvs
mailing list