quota: fix condition for resetting time limit in do_set_dqblk()
authorChengguang Xu <cgxu519@zoho.com.cn>
Wed, 24 Jul 2019 05:32:16 +0000 (13:32 +0800)
committerJan Kara <jack@suse.cz>
Wed, 31 Jul 2019 10:04:42 +0000 (12:04 +0200)
We reset time limit when current usage is smaller
or equal to soft limit in other place, so follow
this rule in do_set_dqblk().

Signed-off-by: Chengguang Xu <cgxu519@zoho.com.cn>
Link: https://lore.kernel.org/r/20190724053216.19392-1-cgxu519@zoho.com.cn
Signed-off-by: Jan Kara <jack@suse.cz>
fs/quota/dquot.c

index be9c471..6e826b4 100644 (file)
@@ -2731,7 +2731,7 @@ static int do_set_dqblk(struct dquot *dquot, struct qc_dqblk *di)
 
        if (check_blim) {
                if (!dm->dqb_bsoftlimit ||
-                   dm->dqb_curspace + dm->dqb_rsvspace < dm->dqb_bsoftlimit) {
+                   dm->dqb_curspace + dm->dqb_rsvspace <= dm->dqb_bsoftlimit) {
                        dm->dqb_btime = 0;
                        clear_bit(DQ_BLKS_B, &dquot->dq_flags);
                } else if (!(di->d_fieldmask & QC_SPC_TIMER))
@@ -2740,7 +2740,7 @@ static int do_set_dqblk(struct dquot *dquot, struct qc_dqblk *di)
        }
        if (check_ilim) {
                if (!dm->dqb_isoftlimit ||
-                   dm->dqb_curinodes < dm->dqb_isoftlimit) {
+                   dm->dqb_curinodes <= dm->dqb_isoftlimit) {
                        dm->dqb_itime = 0;
                        clear_bit(DQ_INODES_B, &dquot->dq_flags);
                } else if (!(di->d_fieldmask & QC_INO_TIMER))