[PATCH 1/3] xfs: consider new reservation for quota check on inode reservation

Mitsuo Hayasaka mitsuo.hayasaka.hu at hitachi.com
Sun Jan 22 21:45:25 CST 2012


The xfs checks quota when reserving disk blocks and inodes. In the block
reservation it checks if the total number of blocks including current
usage and new reservation reach quota. However, in the inode reservation
it checks using the total number of inodes including only current usage
without new reservation. It should include the new one, as well.

Signed-off-by: Mitsuo Hayasaka <mitsuo.hayasaka.hu at hitachi.com>
Cc: Ben Myers <bpm at sgi.com>
Cc: Alex Elder <elder at kernel.org>
Cc: Christoph Hellwig <hch at lst.de>
---

 fs/xfs/xfs_trans_dquot.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
index 4d00ee6..eb29fe1 100644
--- a/fs/xfs/xfs_trans_dquot.c
+++ b/fs/xfs/xfs_trans_dquot.c
@@ -677,11 +677,13 @@ xfs_trans_dqresv(
 			if (!softlimit)
 				softlimit = q->qi_isoftlimit;
 
-			if (hardlimit > 0ULL && count >= hardlimit) {
+			if (hardlimit > 0ULL &&
+			    hardlimit <= ninos + count) {
 				xfs_quota_warn(mp, dqp, QUOTA_NL_IHARDWARN);
 				goto error_return;
 			}
-			if (softlimit > 0ULL && count >= softlimit) {
+			if (softlimit > 0ULL &&
+			    softlimit <= ninos + count) {
 				if  ((timer != 0 && get_seconds() > timer) ||
 				     (warns != 0 && warns >= warnlimit)) {
 					xfs_quota_warn(mp, dqp,




More information about the xfs mailing list