If dovecot-uidlist file is recreated, it gets a new inode number, and we
should recognize by that alone that it has changed. More importantly this
forced re-reading of dovecot-uidlist clears out the RACING flag, making it
impossible to handle reappearing maildir files.
unsigned int unsorted:1;
unsigned int have_mailbox_guid:1;
unsigned int opened_readonly:1;
- unsigned int reread:1;
};
struct maildir_uidlist_sync_ctx {
*recreated_r = TRUE;
return 1;
}
- if (uidlist->reread) {
- uidlist->reread = FALSE;
- *recreated_r = TRUE;
- return 1;
- }
if (st.st_ino != uidlist->fd_ino ||
!CMP_DEV_T(st.st_dev, uidlist->fd_dev)) {
rec = hash_table_lookup(uidlist->files, filename);
i_assert(rec != NULL);
- if ((flags & MAILDIR_UIDLIST_REC_FLAG_RACING) != 0)
- uidlist->reread = TRUE;
-
rec->flags |= flags;
}