]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
maildir copy: Try to use hard linking also between different namespaces.
authorTimo Sirainen <tss@iki.fi>
Mon, 2 Jun 2008 16:17:31 +0000 (19:17 +0300)
committerTimo Sirainen <tss@iki.fi>
Mon, 2 Jun 2008 16:17:31 +0000 (19:17 +0300)
--HG--
branch : HEAD

src/lib-storage/index/maildir/maildir-copy.c

index 76bc25e37e8255fd6aa8027b5768cfd84d9568bf..3fa44855bbfd25c51a16d96a4c4f4e968c80b3c4 100644 (file)
@@ -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,