Eric Sandeen 5ef828c415 xfs: avoid false quotacheck after unclean shutdown
The commit

83e782e xfs: Remove incore use of XFS_OQUOTA_ENFD and XFS_OQUOTA_CHKD

added a new function xfs_sb_quota_from_disk() which swaps
on-disk XFS_OQUOTA_* flags for in-core XFS_GQUOTA_* and XFS_PQUOTA_*
flags after the superblock is read.

However, if log recovery is required, the superblock is read again,
and the modified in-core flags are re-read from disk, so we have
XFS_OQUOTA_* flags in memory again.  This causes the
XFS_QM_NEED_QUOTACHECK() test to be true, because the XFS_OQUOTA_CHKD
is still set, and not XFS_GQUOTA_CHKD or XFS_PQUOTA_CHKD.

Change xfs_sb_from_disk to call xfs_sb_quota_from disk and always
convert the disk flags to in-memory flags.

Add a lower-level function which can be called with "false" to
not convert the flags, so that the sb verifier can verify
exactly what was on disk, per Brian Foster's suggestion.

Reported-by: Cyril B. <cbay@excellency.fr>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
2014-08-04 11:35:44 +10:00
..
2013-05-07 18:45:36 -05:00
2014-03-07 16:19:14 +11:00
2013-11-06 16:31:27 -06:00
2014-06-25 14:57:53 +10:00
2013-05-07 18:45:36 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2012-11-19 20:11:24 -06:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2013-08-12 16:53:39 -05:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2011-08-12 16:21:35 -05:00
2014-06-25 14:58:08 +10:00
2014-05-05 17:30:15 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2011-08-12 16:21:35 -05:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2011-08-12 16:21:35 -05:00
2014-06-25 14:58:08 +10:00
2013-08-12 16:56:06 -05:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-22 15:03:54 +10:00
2014-06-25 14:58:08 +10:00
2013-05-07 18:45:36 -05:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2012-10-17 12:01:25 -05:00
2014-06-25 14:58:08 +10:00
2013-12-04 14:11:05 -06:00
2014-06-25 14:58:08 +10:00
2013-05-07 18:45:36 -05:00