2.6.31 / 2.6.32-last: XFS will not mount after a crash when quotasare enabled (quota DB corrupted)

From: Xavier Roche
Date: Thu Oct 29 2009 - 12:27:42 EST


Hi folks,

We experience issues with XFS on Kernel >= 2.6.31 when quotas are
enabled. Some recent quotas additions might be the cause of the problems
encountered. (1)

Test case to reproduce the issue:
---------------------------------

- Have an XFS filesystem with quotas enabled for users

/etc/fstab entry:
/dev/sda6 /data xfs uqupta,gquota 0 0

- Have a kernel crash while the filesystem is dirty

git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git &
sleep 10
echo b >/proc/sysrq-trigger
# we should dead here

On reboot, after the filesystem check, the filesystem will not mount
because the quota db is apparently corrupted:

XFS: dquot too small (104) in xlog_recover_do_dquot_trans.

The filesystem is however still fixable using:
mount -o noquota /data
umount /data
mount /data

(however this will rebuild the entire DB..)

The issue could not be reproduced on a 2.6.30


(1) http://xfs.org/index.php/XFS_Status_Updates
"The Linux 2.6.31 merge opened in the mid of the month and some big XFS
changes have been pushed: A removal of the quotaops infrastructure which
simplifies the quota implementation, the switch from XFS's own Posix ACL
implementation to the generic one shared by various other filesystems
which also supports in-memory caching of ACLs and another incremental
refactoring of the sync code"
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/