summaryrefslogtreecommitdiff
path: root/setquota.c
diff options
context:
space:
mode:
authorjkar8572 <jkar8572>2008-12-18 23:57:25 +0000
committerjkar8572 <jkar8572>2008-12-18 23:57:25 +0000
commit4afabfe703b1d54ce055ff792ded78cf778b5ec4 (patch)
tree0bc78b4ba9edb78c56f518961feabededc67f9bb /setquota.c
parent830ca0318fc60c8566d76b3961bf9c40e2276569 (diff)
Do not allow setting of user's grace time when softlimit is not exceeded (Jan Kara)
Diffstat (limited to 'setquota.c')
-rw-r--r--setquota.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/setquota.c b/setquota.c
index 325c553..5249737 100644
--- a/setquota.c
+++ b/setquota.c
@@ -387,8 +387,14 @@ static int setindivgraces(struct quota_handle **handles)
curprivs = getprivs(id, handles, 0);
for (q = curprivs; q; q = q->dq_next) {
- q->dq_dqb.dqb_btime = toset.dqb_btime;
- q->dq_dqb.dqb_itime = toset.dqb_itime;
+ if (q->dq_dqb.dqb_bsoftlimit && toqb(q->dq_dqb.dqb_curspace) > q->dq_dqb.dqb_bsoftlimit)
+ q->dq_dqb.dqb_btime = toset.dqb_btime;
+ else
+ errstr(_("Not setting block grace time on %s because softlimit is not exceeded.\n"), q->dq_h->qh_quotadev);
+ if (q->dq_dqb.dqb_isoftlimit && q->dq_dqb.dqb_curinodes > q->dq_dqb.dqb_isoftlimit)
+ q->dq_dqb.dqb_itime = toset.dqb_itime;
+ else
+ errstr(_("Not setting inode grace time on %s because softlimit is not exceeded.\n"), q->dq_h->qh_quotadev);
}
if (putprivs(curprivs, COMMIT_TIMES) == -1) {
errstr(_("cannot write times for %s. Maybe kernel does not support such operation?\n"), type2name(flags & FL_USER ? USRQUOTA : GRPQUOTA));