From: Timo Sirainen Date: Mon, 2 Jun 2008 16:17:31 +0000 (+0300) Subject: maildir copy: Try to use hard linking also between different namespaces. X-Git-Tag: 1.1.rc8~13 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=15a9ff92098d72c3a7a4ad4e3bd16c1d19478f83;p=thirdparty%2Fdovecot%2Fcore.git maildir copy: Try to use hard linking also between different namespaces. --HG-- branch : HEAD --- diff --git a/src/lib-storage/index/maildir/maildir-copy.c b/src/lib-storage/index/maildir/maildir-copy.c index 76bc25e37e..3fa44855bb 100644 --- a/src/lib-storage/index/maildir/maildir-copy.c +++ b/src/lib-storage/index/maildir/maildir-copy.c @@ -115,6 +115,13 @@ maildir_copy_hardlink(struct maildir_transaction_context *t, struct mail *mail, i_assert((t->ictx.flags & MAILBOX_TRANSACTION_FLAG_EXTERNAL) != 0); + if (strcmp(mail->box->storage->name, MAILDIR_STORAGE_NAME) == 0) + src_mbox = (struct maildir_mailbox *)mail->box; + else { + /* Can't hard link files from the source storage */ + return 0; + } + if (t->save_ctx == NULL) t->save_ctx = maildir_save_transaction_init(t); ctx = t->save_ctx; @@ -223,7 +230,6 @@ int maildir_copy(struct mailbox_transaction_context *_t, struct mail *mail, int ret; if (mbox->storage->copy_with_hardlinks && - mail->box->storage == mbox->ibox.box.storage && maildir_compatible_file_modes(&mbox->ibox.box, mail->box)) { T_BEGIN { ret = maildir_copy_hardlink(t, mail, flags,