diff options
-rw-r--r-- | Changelog | 1 | ||||
-rw-r--r-- | setquota.c | 10 |
2 files changed, 9 insertions, 2 deletions
@@ -1,4 +1,5 @@ Changes in quota-tools from 3.16 to 3.17 +* do not allow setting of user's grace time when softlimit is not exceeded (Jan Kara) * fix reference to rpc manpage (anonymous reporter) * add EXT4 (not only EXT4DEV) to the list of supported filesystems (Mingming Cao) * fix setting of more than 31-bit block and inode limits (Gui Xiaohua) @@ -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)); |