From 4fce6ce68d13836faf6d68f35855eba4573b42b2 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 26 Jun 2017 18:50:24 +0300 Subject: [PATCH] lib-storage: mailbox_list_get_permissions() - Use index dir with ITERINDEX --- src/lib-storage/mailbox-list.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib-storage/mailbox-list.c b/src/lib-storage/mailbox-list.c index 0064cc3289..b377801df3 100644 --- a/src/lib-storage/mailbox-list.c +++ b/src/lib-storage/mailbox-list.c @@ -972,8 +972,13 @@ mailbox_list_get_permissions_internal(struct mailbox_list *list, permissions_r->file_create_gid = (gid_t)-1; permissions_r->file_create_gid_origin = "defaults"; - if ((list->flags & MAILBOX_LIST_FLAG_NO_MAIL_FILES) != 0) { - /* mail files don't exist in storage, but index files might. */ + if (list->set.iter_from_index_dir || + (list->flags & MAILBOX_LIST_FLAG_NO_MAIL_FILES) != 0) { + /* a) iterating from index dir. Use the index dir's permissions + as well, since they might be in a faster storage. + + b) mail files don't exist in storage, but index files + might. */ (void)mailbox_list_get_path(list, name, MAILBOX_LIST_PATH_TYPE_INDEX, &path); }