+++ This bug was initially created as a clone of Bug #688161 +++
Description of problem:
repquota reports 'Illegal reference (6 >= 6) in user quota file on /dev/loop0. Quota file is probably corrupted.' after chown command.
This is reproducible on all ext filesystems (ext2, ext4 and ext4).
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. create & mount ext2/3/4 filesystem with usrquota and grpquota
mount /dev/loop0 /mnt/ -o usrquota,grpquota
2. quotacheck and quotaon
quotacheck -u -g /mnt/
3. create file in the mountpoint and check quota with repquota (so far it should be ok)
repquota -u -g /mnt/
4. chown file to a regular user and group
chown fsgqa:fsgqa /mnt/file # fsgqa is xfstests user/group
5. Show quota with repquota
repquota -u -g /mnt/
*** Report for user quotas on device /dev/loop0
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
repquota: Illegal reference (6 >= 6) in user quota file on /dev/loop0. Quota file is probably corrupted.
Please run quotacheck(8) and try again.
Repquota works normally and test 235 pass.
--- Additional comment from firstname.lastname@example.org on 2011-03-17 17:52:55 GMT ---
Yes, it is a regression but not in kernel. I forgot that I updated quota package along with kernel package on my machine so I considered it to be a kernel bug but the real cause was the update of the quota package.
quota-3.17-10.el6 works fine.
quota-3.17-11.el6 has the bug (as well as latest quota-3.17-15.el6).
--- Additional comment from email@example.com on 2011-03-21 14:30:32 GMT ---
According manual `quotacheck' on uninitialized file system should have the same effect as `quotacheck -c'. So this not the problem.
The problem is repquota from RHEL does not synchronize quota files (i.e does not ask kernel to dump current quota data into quota file) before parsing them and printing data form them.
If you run `quotasync' explicitly before, you will get correct results. Also running repquota twice has the same effect despite not calling quotactl(Q_SYNC, ...) (probably some side effect of other quotactl() query).
This bug seems to be fixed in newer (Fedora) quota tools version.
Thank you for reporting this issue.
--- Additional comment from firstname.lastname@example.org on 2011-03-21 14:59:01 GMT ---
More precisely, it current RHEL code calls quotactl(Q_SYNC, ...) too but too late (after opening and buffering part of the quota file content).
Fixed in upstream tree by commit:
Author: jkar8572 <jkar8572>
Date: Thu May 27 13:12:57 2010 +0000
* fix repquota to get latest quota info header (Jan Kara)
Fedoras 16--15 affected too. Fedora 14 rereads headers after synchronization.
quota-4.00-0.10.pre1.fc15 has been submitted as an update for Fedora 15.
quota-4.00-0.10.pre1.fc15 has been pushed to the Fedora 15 stable repository. If problems still persist, please make note of it in this bug report.