Timo Sirainen napsal(a):
On Mon, 2007-02-26 at 15:06 +0100, Václav Hůla wrote:
Feb 26 15:02:27 zen dovecot: IMAP(ax): quotactl(Q_GETQUOTA, /dev/sda8) failed: Invalid argument Feb 26 15:02:27 zen dovecot: IMAP(ax): Dovecot was compiled with Linux quota v2 support, try changing it (--with-linux-quota configure option)
Maybe the quota headers aren't matching what the kernel is running. I've no idea really, the fs quota code either seems to work or it doesn't..
You could try checking with strace what's the difference between Dovecot's quotactl() call and "quota" command's quotactl() call.
The difference:
quota command: quotactl(Q_GETFMT|USRQUOTA, "/dev/sda8", 0, 0xbffff218) = 0
dovecot: quotactl(Q_GETQUOTA|USRQUOTA, "/dev/sda8", 506, {0, 135145272, 1075193885, 1075193885, 135145168, 135099456, 3221217528, 134953542}) = -1 EINVAL (Invalid argument)
I found quotactl in 3 places in /usr/include:
/usr/include/linux/quota.h long quotactl __P ((unsigned int, const char *, int, caddr_t));
/usr/include/sys/quota.h extern int quotactl (int __cmd, const char *__special, int __id, caddr_t __addr) __THROW;
/usr/include/linux/security.h int (*quotactl) (int cmds, int type, int id, struct super_block * sb);
To me it looks that dovecot uses the linux/security one, but sadly I have no idea why or how to stop it.
Hula
Václav Hůla, správce unixových serverů Přírodovědecká fakulta Univerzita Karlova v Praze