]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: dovecot.index.pvt* ignored several settings.
authorTimo Sirainen <tss@iki.fi>
Sun, 6 Dec 2015 14:09:55 +0000 (16:09 +0200)
committerTimo Sirainen <tss@iki.fi>
Sun, 6 Dec 2015 14:09:55 +0000 (16:09 +0200)
mmap_disable=yes, dotlock_use_excl=yes and nfs_flush_index=yes weren't used.

src/lib-storage/mail-storage.c

index 75c05a28b3a6fa64525e8ed4d988164db471b3c1..fe319755e248eb4ea13cd849966da2f7f26162f8 100644 (file)
@@ -1174,6 +1174,7 @@ static int mailbox_alloc_index_pvt(struct mailbox *box)
 
 int mailbox_open_index_pvt(struct mailbox *box)
 {
+       enum mail_index_open_flags index_flags;
        int ret;
 
        if (box->view_pvt != NULL)
@@ -1183,7 +1184,11 @@ int mailbox_open_index_pvt(struct mailbox *box)
 
        if ((ret = mailbox_alloc_index_pvt(box)) <= 0)
                return ret;
-       if (mail_index_open(box->index_pvt, MAIL_INDEX_OPEN_FLAG_CREATE) < 0)
+       index_flags = MAIL_INDEX_OPEN_FLAG_CREATE |
+               mail_storage_settings_to_index_flags(box->storage->set);
+       if ((box->flags & MAILBOX_FLAG_SAVEONLY) != 0)
+               index_flags |= MAIL_INDEX_OPEN_FLAG_SAVEONLY;
+       if (mail_index_open(box->index_pvt, index_flags) < 0)
                return -1;
        box->view_pvt = mail_index_view_open(box->index_pvt);
        return 1;