]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mail_transaction_log_view_clear() should keep oldest_file_seq and newer referenced.
authorTimo Sirainen <tss@iki.fi>
Sat, 9 May 2009 16:29:08 +0000 (12:29 -0400)
committerTimo Sirainen <tss@iki.fi>
Sat, 9 May 2009 16:29:08 +0000 (12:29 -0400)
--HG--
branch : HEAD

src/lib-index/mail-transaction-log-view.c
src/lib-index/mail-transaction-log.h

index 24e3ea4b2c916301fd2c087e4eeac8029bd8a553..735a11bddac7f19866b825770eac7746a8ecec80 100644 (file)
@@ -313,8 +313,10 @@ void mail_transaction_log_view_clear(struct mail_transaction_log_view *view,
        mail_transaction_log_view_unref_all(view);
        if (mail_transaction_log_find_file(view->log, oldest_file_seq, FALSE,
                                           &file) > 0) {
-               array_append(&view->file_refs, &file, 1);
-               file->refcount++;
+               for (; file != NULL; file = file->next) {
+                       array_append(&view->file_refs, &file, 1);
+                       file->refcount++;
+               }
        }
 
        view->cur = view->head = view->tail = NULL;
index 0886f81da56b5b40b67c622bfaa786aa1ed0b3fe..f36e12fe38c25318b3f376062644f87303b9dc3d 100644 (file)
@@ -175,8 +175,8 @@ int mail_transaction_log_view_set(struct mail_transaction_log_view *view,
                                  uint32_t min_file_seq, uoff_t min_file_offset,
                                  uint32_t max_file_seq, uoff_t max_file_offset,
                                  bool *reset_r);
-/* Clear the view. Keep oldest_file_seq log referenced so we don't get
-   desynced. */
+/* Clear the view. Keep oldest_file_seq and newer log files referenced so we
+   don't get desynced. */
 void mail_transaction_log_view_clear(struct mail_transaction_log_view *view,
                                     uint32_t oldest_file_seq);