[PATCH 55/58] xfs_repair: do not count metadata directory files when doing quotacheck

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Darrick J. Wong <djwong@xxxxxxxxxx>

Previously, we stated that files in the metadata directory tree are not
counted in the dquot information.  Fix the offline quotacheck code in
xfs_repair and xfs_check to reflect this.

Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>
---
 db/check.c          |    4 ++++
 repair/quotacheck.c |    5 +++++
 2 files changed, 9 insertions(+)


diff --git a/db/check.c b/db/check.c
index ae527471161..190565074b6 100644
--- a/db/check.c
+++ b/db/check.c
@@ -3018,6 +3018,10 @@ process_inode(
 		default:
 			break;
 		}
+		/* Metadata directory files are not counted in quotas. */
+		if (dip->di_version >= 3 &&
+		    (dip->di_flags2 & cpu_to_be64(XFS_DIFLAG2_METADIR)))
+			ic = 0;
 		if (ic)
 			quota_add(&prid, &gid, &uid, 0, bc, ic, rc);
 	}
diff --git a/repair/quotacheck.c b/repair/quotacheck.c
index 4cb38db3ddd..3abcd8ae9a0 100644
--- a/repair/quotacheck.c
+++ b/repair/quotacheck.c
@@ -217,6 +217,10 @@ quotacheck_adjust(
 		return;
 	}
 
+	/* Metadata directory files aren't counted in quota. */
+	if (xfs_is_metadir_inode(ip))
+		goto out_rele;
+
 	/* Count the file's blocks. */
 	if (XFS_IS_REALTIME_INODE(ip))
 		rtblks = qc_count_rtblocks(ip);
@@ -229,6 +233,7 @@ quotacheck_adjust(
 	if (proj_dquots)
 		qc_adjust(proj_dquots, ip->i_projid, blocks, rtblks);
 
+out_rele:
 	libxfs_irele(ip);
 }
 





[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux