| To: | Ben Myers <bpm@xxxxxxx>, Alex Elder <aelder@xxxxxxx>, Christoph Hellwig <hch@xxxxxx> |
|---|---|
| Subject: | [PATCH 3/3] xfs: cleanup quota check on disk blocks and inodes reservations |
| From: | Mitsuo Hayasaka <mitsuo.hayasaka.hu@xxxxxxxxxxx> |
| Date: | Mon, 23 Jan 2012 12:45:43 +0900 |
| Cc: | xfs-masters@xxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, yrl.pp-manager.tt@xxxxxxxxxxx, Mitsuo Hayasaka <mitsuo.hayasaka.hu@xxxxxxxxxxx>, Ben Myers <bpm@xxxxxxx>, Alex Elder <elder@xxxxxxxxxx>, Christoph Hellwig <hch@xxxxxx> |
| In-reply-to: | <20120123034513.3339.97432.stgit@xxxxxxxxxxxxxxxxxxxxxxxx> |
| References: | <20120123034513.3339.97432.stgit@xxxxxxxxxxxxxxxxxxxxxxxx> |
| User-agent: | StGIT/0.14.3 |
This patch is a cleanup of quota check on disk blocks and inodes
reservations.
Signed-off-by: Mitsuo Hayasaka <mitsuo.hayasaka.hu@xxxxxxxxxxx>
Cc: Ben Myers <bpm@xxxxxxx>
Cc: Alex Elder <elder@xxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
---
fs/xfs/xfs_trans_dquot.c | 17 +++++++----------
1 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
index c4ba366..5e6cd1c 100644
--- a/fs/xfs/xfs_trans_dquot.c
+++ b/fs/xfs/xfs_trans_dquot.c
@@ -605,7 +605,7 @@ xfs_trans_dqresv(
time_t timer;
xfs_qwarncnt_t warns;
xfs_qwarncnt_t warnlimit;
- xfs_qcnt_t count;
+ xfs_qcnt_t tcount;
xfs_qcnt_t *resbcountp;
xfs_quotainfo_t *q = mp->m_quotainfo;
@@ -648,13 +648,12 @@ xfs_trans_dqresv(
* hardlimit or exceed the timelimit if we allocate
* nblks.
*/
- if (hardlimit > 0ULL &&
- hardlimit < nblks + *resbcountp) {
+ tcount = *resbcountp + nblks;
+ if (hardlimit > 0ULL && tcount > hardlimit) {
xfs_quota_warn(mp, dqp, QUOTA_NL_BHARDWARN);
goto error_return;
}
- if (softlimit > 0ULL &&
- softlimit < nblks + *resbcountp) {
+ if (softlimit > 0ULL && tcount > softlimit) {
if ((timer != 0 && get_seconds() > timer) ||
(warns != 0 && warns >= warnlimit)) {
xfs_quota_warn(mp, dqp,
@@ -666,7 +665,7 @@ xfs_trans_dqresv(
}
}
if (ninos > 0) {
- count = be64_to_cpu(dqp->q_core.d_icount);
+ tcount = be64_to_cpu(dqp->q_core.d_icount) + ninos;
timer = be32_to_cpu(dqp->q_core.d_itimer);
warns = be16_to_cpu(dqp->q_core.d_iwarns);
warnlimit = dqp->q_mount->m_quotainfo->qi_iwarnlimit;
@@ -677,13 +676,11 @@ xfs_trans_dqresv(
if (!softlimit)
softlimit = q->qi_isoftlimit;
- if (hardlimit > 0ULL &&
- hardlimit < ninos + count) {
+ if (hardlimit > 0ULL && tcount > hardlimit) {
xfs_quota_warn(mp, dqp, QUOTA_NL_IHARDWARN);
goto error_return;
}
- if (softlimit > 0ULL &&
- softlimit < ninos + count) {
+ if (softlimit > 0ULL && tcount > softlimit) {
if ((timer != 0 && get_seconds() > timer) ||
(warns != 0 && warns >= warnlimit)) {
xfs_quota_warn(mp, dqp,
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH 2/3] xfs: change available ranges of softlimit and hardlimit in quota check, Mitsuo Hayasaka |
|---|---|
| Next by Date: | Re: Optimal XFS formatting options?, Dave Chinner |
| Previous by Thread: | [PATCH 2/3] xfs: change available ranges of softlimit and hardlimit in quota check, Mitsuo Hayasaka |
| Next by Thread: | Re: [PATCH 0/3] xfs: change available ranges in quota check, Christoph Hellwig |
| Indexes: | [Date] [Thread] [Top] [All Lists] |