Blame SOURCES/quota-4.05-Fix-limits-setting-on-XFS-filesystem.patch

d26b56
From 13bb8c2daca0f1c1099ce6ba9dcb23319f7955d0 Mon Sep 17 00:00:00 2001
d26b56
From: Jan Kara <jack@suse.cz>
d26b56
Date: Wed, 20 May 2020 16:22:52 +0200
d26b56
Subject: [PATCH 2/2] Fix limits setting on XFS filesystem
d26b56
MIME-Version: 1.0
d26b56
Content-Type: text/plain; charset=UTF-8
d26b56
Content-Transfer-Encoding: 8bit
d26b56
d26b56
xfs_commit_dquot() always set FS_DQ_LIMIT_MASK when calling
d26b56
Q_XFS_SETQLIM. So far this wasn't a problem since quota tools didn't
d26b56
support setting of anything else for XFS but now that kernel will start
d26b56
supporting setting of grace times for XFS, we need to be more careful
d26b56
and set limits bits only if we really want to update them. Also
d26b56
FS_DQ_LIMIT_MASK contains real-time limits as well. Quota tools
d26b56
currently don't support them in any way so avoid telling kernel to set
d26b56
them.
d26b56
d26b56
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
d26b56
Signed-off-by: Jan Kara <jack@suse.cz>
d26b56
Signed-off-by: Petr Písař <ppisar@redhat.com>
d26b56
---
d26b56
 quotaio_xfs.c | 4 +++-
d26b56
 1 file changed, 3 insertions(+), 1 deletion(-)
d26b56
d26b56
diff --git a/quotaio_xfs.c b/quotaio_xfs.c
d26b56
index a4d6f67..3333bb1 100644
d26b56
--- a/quotaio_xfs.c
d26b56
+++ b/quotaio_xfs.c
d26b56
@@ -165,7 +165,9 @@ static int xfs_commit_dquot(struct dquot *dquot, int flags)
d26b56
 		if (flags & COMMIT_USAGE) /* block usage */
d26b56
 			xdqblk.d_fieldmask |= FS_DQ_BCOUNT;
d26b56
 	} else {
d26b56
-		xdqblk.d_fieldmask |= FS_DQ_LIMIT_MASK;
d26b56
+		if (flags & COMMIT_LIMITS) /* warn/limit */
d26b56
+			xdqblk.d_fieldmask |= FS_DQ_BSOFT | FS_DQ_BHARD |
d26b56
+						FS_DQ_ISOFT | FS_DQ_IHARD;
d26b56
 		if (flags & COMMIT_TIMES) /* indiv grace period */
d26b56
 			xdqblk.d_fieldmask |= FS_DQ_TIMER_MASK;
d26b56
 	}
d26b56
-- 
d26b56
2.25.4
d26b56