> Dovecot doesn't try to enforce filesystem quota limits.
I'm admittedly feeling utterly stupid in trying to tell an author what his 
programm is doing, but ...

> It just handles the EDQUOT error from write().
... I ktrace'd imap and there was no failing write(), only suspicious rpcs to 
the file server.

> So the only thing that the fs quota plugin does is report the limits and
> current usage to clients via IMAP QUOTA commands.
I thought the latter was the job of the imap-quota plugin?

I read the code and verified by attaching gdb to a running imap proces that 
there is the following code path leading to enforcement of NFS soft quotas:

v.copy -> quota_copy() -> quota_check() -> quota_try_alloc() -> 
quota_test_alloc() -> quota_tracsaction_set_limits() -> quota_get_resource() -> 
fs_quota_get_resource() -> do_quota().

I don't see an easy way to fix this. If one wants the IMAP GETQUOTA command to 
report the soft limits (which I find reasonable) but continue allowing 
allocation up to the hard limit (which I find mandatory), one must either teach 
the whole quota system about hard/soft limits or keep it from enforcing the 
(soft) limits if the fs is going to enforce them anyway.

Reply via email to