int maildir_save_finish(struct mail_save_context *ctx) { int ret; T_BEGIN { ret = maildir_save_finish_real(ctx); } T_END; index_save_context_free(ctx); return ret; }
int maildir_copy(struct mail_save_context *ctx, struct mail *mail) { struct mailbox_transaction_context *_t = ctx->transaction; struct maildir_mailbox *mbox = (struct maildir_mailbox *)_t->box; int ret; i_assert((_t->flags & MAILBOX_TRANSACTION_FLAG_EXTERNAL) != 0); if (mbox->storage->set->maildir_copy_with_hardlinks && mail_storage_copy_can_use_hardlink(mail->box, &mbox->box)) { T_BEGIN { ret = maildir_copy_hardlink(ctx, mail); } T_END; if (ret != 0) { index_save_context_free(ctx); return ret > 0 ? 0 : -1; } /* non-fatal hardlinking failure, try the slow way */ }