]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-index: mail_index_map_latest_sync() - Minor refactoring
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 10 Aug 2020 14:45:08 +0000 (17:45 +0300)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Mon, 23 Nov 2020 13:19:55 +0000 (13:19 +0000)
src/lib-index/mail-index-map-read.c

index 04db3be366c9af69e91500ce42ecf7a79f4240c5..17fa2fdc3c0e68d51c1ab0fc49c419608c87d646 100644 (file)
@@ -410,23 +410,24 @@ mail_index_map_latest_sync(struct mail_index *index,
                           enum mail_index_sync_handler_type type,
                           const char *reason)
 {
-       int ret = 1;
-
-       /* if we're creating the index file, we don't have any
-          logs yet */
-       if (index->log->head != NULL && index->indexid != 0) {
-               /* and update the map with the latest changes
-                  from transaction log */
-               ret = mail_index_sync_map(&index->map, type,
-                                         TRUE, reason);
+       int ret;
+
+       if (index->log->head == NULL || index->indexid == 0) {
+               /* we're creating the index file, we don't have any
+                  logs yet */
+               return 1;
        }
-       if (ret == 0) {
-               /* we fsck'd the index. try opening again. */
-               ret = mail_index_map_latest_file(index, &reason);
-               if (ret > 0 && index->indexid != 0) {
-                       ret = mail_index_sync_map(&index->map,
-                                                 type, TRUE, reason);
-               }
+
+       /* and update the map with the latest changes from transaction log */
+       ret = mail_index_sync_map(&index->map, type, TRUE, reason);
+       if (ret != 0)
+               return ret;
+
+       /* we fsck'd the index. try opening again. */
+       ret = mail_index_map_latest_file(index, &reason);
+       if (ret > 0 && index->indexid != 0) {
+               ret = mail_index_sync_map(&index->map,
+                                         type, TRUE, reason);
        }
        return ret;
 }