From: Timo Sirainen Date: Sat, 1 May 2004 16:42:10 +0000 (+0300) Subject: cleanup X-Git-Tag: 1.1.alpha1~4161 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87712707722ef7d73acb065546e61afa4455cd9e;p=thirdparty%2Fdovecot%2Fcore.git cleanup --HG-- branch : HEAD --- diff --git a/src/lib-index/mail-index.c b/src/lib-index/mail-index.c index 2666079918..a25e9d4059 100644 --- a/src/lib-index/mail-index.c +++ b/src/lib-index/mail-index.c @@ -655,32 +655,30 @@ void mail_index_set_inconsistent(struct mail_index *index) index->indexid = 0; } -int mail_index_mark_corrupted(struct mail_index *index) +void mail_index_mark_corrupted(struct mail_index *index) { struct mail_index_header hdr; + mail_index_set_inconsistent(index); + if (index->readonly) - return 0; + return; /* make sure we can write the header */ if (!MAIL_INDEX_MAP_IS_IN_MEMORY(index->map)) { if (mprotect(index->map->mmap_base, sizeof(hdr), PROT_READ | PROT_WRITE) < 0) { mail_index_set_syscall_error(index, "mprotect()"); - return -1; + return; } } hdr = *index->hdr; hdr.flags |= MAIL_INDEX_HDR_FLAG_CORRUPTED; - if (mail_index_write_header(index, &hdr) < 0) - return -1; - - if (fsync(index->fd) < 0) - return mail_index_set_syscall_error(index, "fsync()"); - - mail_index_set_inconsistent(index); - return 0; + if (mail_index_write_header(index, &hdr) == 0) { + if (fsync(index->fd) < 0) + mail_index_set_syscall_error(index, "fsync()"); + } } int mail_index_set_syscall_error(struct mail_index *index, diff --git a/src/lib-index/mail-index.h b/src/lib-index/mail-index.h index 119ccf1aff..d9b42a270c 100644 --- a/src/lib-index/mail-index.h +++ b/src/lib-index/mail-index.h @@ -213,7 +213,7 @@ int mail_index_sync_have_more(struct mail_index_sync_ctx *ctx); int mail_index_sync_end(struct mail_index_sync_ctx *ctx); /* Mark index file corrupted. Invalidates all views. */ -int mail_index_mark_corrupted(struct mail_index *index); +void mail_index_mark_corrupted(struct mail_index *index); /* Check and fix any found problems. If index is broken beyond repair, calls mail_index_reset() and returns 0. Otherwise returns -1 if there was some I/O error or 1 if everything went ok. */