@@ -24,6 +24,16 @@ void quotacheck_skip(void)
*/
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;
@@ -9,6 +9,7 @@
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);
@@ -1106,7 +1106,7 @@ _("Warning: project quota information would be cleared.\n"
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 |