dsync-mailbox.c revision c864fdd520b0c3f10a4b9bc5373368f4ae8faaff
2454dfa32c93c20a8522c6ed42fe057baaac9f9aStephan Bosch/* Copyright (c) 2013-2017 Dovecot authors, see the included COPYING file */
c864fdd520b0c3f10a4b9bc5373368f4ae8faaffTimo Sirainenint dsync_mailbox_lock(struct dsync_brain *brain, struct mailbox *box,
c864fdd520b0c3f10a4b9bc5373368f4ae8faaffTimo Sirainen /* Make sure the mailbox is open - locking requires it */
c864fdd520b0c3f10a4b9bc5373368f4ae8faaffTimo Sirainen i_error("Can't open mailbox %s: %s", mailbox_get_vname(box),
c864fdd520b0c3f10a4b9bc5373368f4ae8faaffTimo Sirainen mailbox_get_last_internal_error(box, &brain->mail_error));
c864fdd520b0c3f10a4b9bc5373368f4ae8faaffTimo Sirainen ret = mailbox_get_path_to(box, MAILBOX_LIST_PATH_TYPE_INDEX, &path);
c864fdd520b0c3f10a4b9bc5373368f4ae8faaffTimo Sirainen i_error("Can't get mailbox %s path: %s", mailbox_get_vname(box),
c864fdd520b0c3f10a4b9bc5373368f4ae8faaffTimo Sirainen mailbox_get_last_internal_error(box, &brain->mail_error));
c864fdd520b0c3f10a4b9bc5373368f4ae8faaffTimo Sirainen /* No index files - don't do any locking. In theory we still
c864fdd520b0c3f10a4b9bc5373368f4ae8faaffTimo Sirainen could, but this lock is mainly meant to prevent replication
c864fdd520b0c3f10a4b9bc5373368f4ae8faaffTimo Sirainen problems, and replication wouldn't work without indexes. */
c864fdd520b0c3f10a4b9bc5373368f4ae8faaffTimo Sirainen if (mailbox_lock_file_create(box, DSYNC_MAILBOX_LOCK_FILENAME,
c864fdd520b0c3f10a4b9bc5373368f4ae8faaffTimo Sirainen i_error("Failed to lock mailbox %s for dsyncing: %s",