[Dovecot] NFS quota: hard or soft
Edgar Fuß
ef at math.uni-bonn.de
Mon Oct 20 13:21:47 EEST 2008
> 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.
More information about the dovecot
mailing list