A couple of goodies

David Carter dpc22 at cam.ac.uk
Thu Jul 12 16:32:59 EDT 2007

Some more patches now available from:



Translate mailbox rename into filesystem rename() where possible.
Falls back to mailbox_rename_copy() and mailbox_rename_cleanup().

rename() isn't quite as safe as linking each message in turn and then
removing the source mailbox: if the power fails after the rename() but
before the mboxlist is updated then you have a missing mailbox. However:

1) Mailbox renames are rare

2) Fast rename completes in a fraction of a second, regardless of the
    size of the mailbox

3) The sys admin can always fix the problem by hand (and it would
    be possible to log all renames to make it easier to spot problems).

My original fast_rename patch for 2.1.X spotted recursive rename and
turned the whole thing into a single rename(). This patch isn't
as ambitious: only leaf mailboxes get rename()ed. It is however much
less invasive, so hopefully a better chance of going in upstream.


Companion to deleted expunge.

Translate IMAP DELETE to a rename. The mailbox ends up in a nominated 
hierarchy (but the same partition) which is only visible to admin users. 
cyr_expire gains a -D option to match -X for delayed expunge.

Benefits _substantially_ from fast_rename above.

David Carter                             Email: David.Carter at ucs.cam.ac.uk
University Computing Service,            Phone: (01223) 334502
New Museums Site, Pembroke Street,       Fax:   (01223) 334679
Cambridge UK. CB2 3QH.

More information about the Cyrus-devel mailing list