summaryrefslogtreecommitdiff
path: root/quotaops.c
diff options
context:
space:
mode:
Diffstat (limited to 'quotaops.c')
-rw-r--r--quotaops.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/quotaops.c b/quotaops.c
index 96086f4..2d25ae5 100644
--- a/quotaops.c
+++ b/quotaops.c
@@ -418,8 +418,16 @@ static void merge_times_to_list(struct dquot *qlist, char *dev, time_t btime, ti
if (!devcmp_handle(dev, q->dq_h))
continue;
- q->dq_dqb.dqb_btime = btime;
- q->dq_dqb.dqb_itime = itime;
+ if (!btime ||
+ (q->dq_dqb.dqb_bsoftlimit && toqb(q->dq_dqb.dqb_curspace) > q->dq_dqb.dqb_bsoftlimit))
+ q->dq_dqb.dqb_btime = btime;
+ else
+ errstr(_("Not setting block grace time on %s because softlimit is not exceeded.\n"), q->dq_h->qh_quotadev);
+ if (!itime ||
+ (q->dq_dqb.dqb_isoftlimit && q->dq_dqb.dqb_curinodes > q->dq_dqb.dqb_isoftlimit))
+ q->dq_dqb.dqb_itime = itime;
+ else
+ errstr(_("Not setting inode grace time on %s because softlimit is not exceeded.\n"), q->dq_h->qh_quotadev);
q->dq_flags |= DQ_FOUND;
}
}