# HG changeset patch # User Timo Sirainen # Date 1500919713 -10800 # Node ID 18726a70209b5f3fbc8cf2e33691ea622e41967c # Parent d802f801c8f90588fc85246d78d705899886546c lib-storage: Try to get mailbox list index's permissions from its parent directory This avoids stat()ing the mail/index root directory, which is especially useful when mailbox list index is stored in tmpfs. diff -r d802f801c8f9 -r 18726a70209b src/lib-storage/list/mailbox-list-index.c --- a/src/lib-storage/list/mailbox-list-index.c Mon Jul 24 21:07:44 2017 +0300 +++ b/src/lib-storage/list/mailbox-list-index.c Mon Jul 24 21:08:33 2017 +0300 @@ -56,7 +56,6 @@ { struct mailbox_list_index *ilist = INDEX_LIST_CONTEXT(list); const struct mail_storage_settings *set = list->mail_set; - struct mailbox_permissions perm; enum mail_index_open_flags index_flags; unsigned int lock_timeout; @@ -77,10 +76,14 @@ lock_timeout = set->mail_max_lock_timeout == 0 ? UINT_MAX : set->mail_max_lock_timeout; - mailbox_list_get_root_permissions(list, &perm); - mail_index_set_permissions(ilist->index, perm.file_create_mode, - perm.file_create_gid, - perm.file_create_gid_origin); + if (!mail_index_use_existing_permissions(ilist->index)) { + struct mailbox_permissions perm; + + mailbox_list_get_root_permissions(list, &perm); + mail_index_set_permissions(ilist->index, perm.file_create_mode, + perm.file_create_gid, + perm.file_create_gid_origin); + } mail_index_set_log_rotation(ilist->index, MAILBOX_LIST_INDEX_LOG_ROTATE_MIN_SIZE, MAILBOX_LIST_INDEX_LOG_ROTATE_MAX_SIZE,