If we verified that the incore quota counts match the ondisk quota
contents, we can leave the CHKD flags set so that the next mount doesn't
have to repeat the quotacheck.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
*/
static uint16_t chkd_flags;
+/*
+ * Return CHKD flags for the quota types that we checked. If we encountered
+ * any errors at all, return zero.
+ */
+uint16_t
+quotacheck_results(void)
+{
+ return chkd_flags;
+}
+
/* Global incore dquot tree */
struct qc_dquots {
pthread_mutex_t lock;
void quotacheck_skip(void);
void quotacheck_adjust(struct xfs_mount *mp, xfs_ino_t ino);
void quotacheck_verify(struct xfs_mount *mp, unsigned int type);
+uint16_t quotacheck_results(void);
int quotacheck_setup(struct xfs_mount *mp);
void quotacheck_teardown(void);
dsb = sbp->b_addr;
- if (mp->m_sb.sb_qflags & XFS_ALL_QUOTA_CHKD) {
+ if ((mp->m_sb.sb_qflags & XFS_ALL_QUOTA_CHKD) != quotacheck_results()) {
do_warn(_("Note - quota info will be regenerated on next "
"quota mount.\n"));
dsb->sb_qflags &= cpu_to_be16(~(XFS_UQUOTA_CHKD |