Lines Matching refs:list
43 struct mail_index_alloc_cache_list *list;
45 list = i_new(struct mail_index_alloc_cache_list, 1);
46 list->refcount = 1;
47 list->index = index;
49 list->mailbox_path = i_strdup(mailbox_path);
50 list->index_dir_dev = st->st_dev;
51 list->index_dir_ino = st->st_ino;
53 list->next = indexes;
54 indexes = list;
56 MODULE_CONTEXT_SET(index, mail_index_alloc_cache_index_module, list);
57 return list;
61 mail_index_alloc_cache_list_unref(struct mail_index_alloc_cache_list *list)
63 i_assert(list->referenced);
67 mail_index_close(list->index);
68 list->referenced = FALSE;
72 mail_index_alloc_cache_list_free(struct mail_index_alloc_cache_list *list)
74 i_assert(list->refcount == 0);
76 if (list->referenced)
77 mail_index_alloc_cache_list_unref(list);
78 mail_index_free(&list->index);
79 i_free(list->mailbox_path);
80 i_free(list);
173 struct mail_index_alloc_cache_list **list, *rec;
177 for (list = &indexes; *list != NULL;) {
178 rec = *list;
182 *list = rec->next;
200 list = &(*list)->next;
218 struct mail_index_alloc_cache_list *list, **listp;
221 list = NULL;
224 list = *listp;
229 i_assert(list != NULL);
230 i_assert(list->refcount > 0);
232 list->refcount--;
233 list->destroy_time = ioloop_time + INDEX_CACHE_TIMEOUT;
235 if (list->refcount == 0 && index->open_count == 0) {
237 *listp = list->next;
238 mail_index_alloc_cache_list_free(list);
252 struct mail_index_alloc_cache_list *list =
256 if (list != NULL && list->index_dir_ino == 0 &&
260 list->index_dir_ino = st.st_ino;
261 list->index_dir_dev = st.st_dev;
268 struct mail_index_alloc_cache_list *list =
272 if (index->open_count > 1 || list == NULL)
275 if (list->referenced) {
287 list->referenced = TRUE;