[Dovecot] fs quota - what I am doing wrong?

Václav Hůla ax at natur.cuni.cz
Thu Mar 1 09:05:43 EET 2007


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


More information about the dovecot mailing list