if (!mail_cache_open_or_create(index))
return FALSE;
+ /* custom flags file needs to be open before rebuilding index */
+ if (!mail_custom_flags_open_or_create(index))
+ return FALSE;
+
if ((index->header->flags & MAIL_INDEX_HDR_FLAG_REBUILD) != 0 ||
(index->set_flags & MAIL_INDEX_HDR_FLAG_REBUILD) != 0) {
rebuilt = FALSE;
}
- /* custom flags file needs to be open before rebuilding index */
- if (!mail_custom_flags_open_or_create(index))
- return FALSE;
-
if ((flags & _MAIL_INDEX_OPEN_FLAG_CREATING) == 0) {
if (!mail_modifylog_open_or_create(index))
return FALSE;
struct mail_index_record *rec;
enum mail_index_record_flag index_flags;
+ if (mail_cache_lock(index->cache, FALSE) <= 0)
+ return FALSE;
+ mail_cache_unlock_later(index->cache);
+
rec = index->lookup(index, 1);
while (rec != NULL) {
index_flags = mail_cache_get_index_flags(index->cache, rec);