]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
quota-maildir: Avoid leaving maildirsize deleted when quota recalculation is wanted.
authorTimo Sirainen <tss@iki.fi>
Wed, 4 Aug 2010 15:02:54 +0000 (16:02 +0100)
committerTimo Sirainen <tss@iki.fi>
Wed, 4 Aug 2010 15:02:54 +0000 (16:02 +0100)
src/plugins/quota/quota-maildir.c

index 9f66a1ba3cf69ded90e5e671f8d68ec2b0b4c780..41693a0d685806fbbdd96d9ef7ba77e7b1ad6959 100644 (file)
@@ -851,9 +851,13 @@ maildir_quota_update(struct quota_root *_root,
        if (recalculated) {
                /* quota was just recalculated and it already contains the changes
                   we wanted to do. */
-       } else if (root->fd == -1 || ctx->recalculate)
-               maildirsize_rebuild_later(root);
-       else if (maildirsize_update(root, ctx->count_used, ctx->bytes_used) < 0)
+       } else if (root->fd == -1)
+               (void)maildirsize_recalculate(root);
+       else if (ctx->recalculate) {
+               (void)close(root->fd);
+               root->fd = -1;
+               (void)maildirsize_recalculate(root);
+       } else if (maildirsize_update(root, ctx->count_used, ctx->bytes_used) < 0)
                maildirsize_rebuild_later(root);
 
        return 0;