On 08/09/11 00:45, Julien Coloos wrote: > Le 06/09/2011 10:23, Greg Banks a écrit : >> > >> >> ... >> >> I'm still not convinced we'll need quota.sets[], but I'll play along. >> >> Thanks again for your work, and sorry that my annotate branch wasn't >> quite as stable a base as you first thought :) > So, I saved my current branch to 'quotamessage-0/gnb/annotate' and > rebased my patches on current 'annotate' branch (with less racy 'quota > -f'). > I removed everything related to recomputing from my patches (as well as > quota.sets[]). > > What is missing now is the new index field, which value will be used in > mailbox_get_usage function. Since my changes do rely on this function, > and sometimes computes a delta compared to a previous call of that > function, it may not need to be updated afterwards ... I hope.
Ok, here you go. Not completely tested yet, so caveat emptor. The following changes since commit af8d5bd3b40c4cb49fb7c943c85cb0aeab209215: Make quota -f less racy. (2011-09-06 15:53:49 +1000) are available in the git repository at: ssh://g...@github.com/gnb/cyrus-imapd.git annotate Greg Banks (9): Fix compile warning in cmd_setquota append_setup() et al take an array of quota diffs unit: restore simplicity to quota TESTCASE macro annotate: kill annotate_state_write_{start,finish} annotate: _delete and _msg_copy take mailbox* annotate: use mailbox* instead of name in API Fix annotation memory leak in sync_server annotate: track quota in mailbox header annotate: woops, forgot this hunk Julien Coloos (5): Added quota MESSAGE resource (RFC 2087) management. List and compute all set quota resources. Do not mess with mailbox index struct fields upon deleting. When tracking quota usage changes, check all resources. Added helper function to get messages current usage from mailbox struct. Handle quota resources other than STORAGE in DUMP/UNDUMP. Also fix protocol breaking upon dumping annotations. cunit/annotate.c | 84 +++++---- cunit/quota.c | 72 +++++-- imap/annotate.c | 507 ++++++++++++++++++++++++-------------------------- imap/annotate.h | 19 ++- imap/append.c | 30 ++- imap/append.h | 6 +- imap/cyr_virusscan.c | 2 +- imap/imap_err.et | 2 +- imap/imapd.c | 219 ++++++++++++++++------- imap/index.c | 7 +- imap/lmtpd.c | 33 +++- imap/lmtpengine.c | 7 +- imap/lmtpengine.h | 4 +- imap/mailbox.c | 104 ++++++++--- imap/mailbox.h | 12 +- imap/mbdump.c | 146 ++++++++++++--- imap/mboxlist.c | 31 ++-- imap/nntpd.c | 4 +- imap/quota.c | 94 +++++++--- imap/quota.h | 18 ++- imap/quota_db.c | 36 +++- imap/smmapd.c | 15 +- imap/sync_client.c | 4 +- imap/sync_server.c | 19 ++- imap/sync_support.c | 6 - lib/imapoptions | 11 +- 26 files changed, 933 insertions(+), 559 deletions(-) > Then maybe some of the cassandane tests I pushed on our repository would > need to be refreshed (at least the one that checks what happens for > legacy mailboxes on which we add one of the newly handled quota resources). > That's next week's focus I think. -- Greg.