From: Timo Sirainen Date: Mon, 26 Jun 2017 15:50:24 +0000 (+0300) Subject: lib-storage: mailbox_list_get_permissions() - Use index dir with ITERINDEX X-Git-Tag: 2.3.0.rc1~1335 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4fce6ce68d13836faf6d68f35855eba4573b42b2;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: mailbox_list_get_permissions() - Use index dir with ITERINDEX --- 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); }