Whamcloud - gitweb
LU-17500 qmt: avoid "enforced bit set, but neither" 93/53893/3
authorSergey Cheremencev <scherementsev@ddn.com>
Fri, 2 Feb 2024 20:07:00 +0000 (23:07 +0300)
committerOleg Drokin <green@whamcloud.com>
Fri, 23 Feb 2024 07:15:34 +0000 (07:15 +0000)
Don't call qmt_revalidate_qunit in qmt_set_with_lqe
as it is possible that lqe_enforced bit is not cleared
in case when hard and soft limits are setting to 0.
No reasons to recalculate qunit and edquot when we
set limits to 0. For the case when limits are changed,
qunit and edquot will be calculated below in "dirtied"
branch. So not reasons to do this 2 times.

Patch helps to avoid following error:
LustreError: 21362:0:(qmt_entry.c:746:qmt_adjust_qunit())
  $$$ enforced bit set, but neither hard nor soft limit are set

Signed-off-by: Sergey Cheremencev <scherementsev@ddn.com>
Change-Id: I8f5d9630f43b66ae7ea2be0bf2c735a02e1f6299
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53893
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Hongchao Zhang <hongchao@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
lustre/quota/qmt_handler.c

index 2d38a8d..116d01d 100644 (file)
@@ -212,10 +212,6 @@ int qmt_set_with_lqe(const struct lu_env *env, struct qmt_device *qmt,
                }
 
 quota_set:
-               /* recompute qunit in case it was never initialized */
-               if (qmt_revalidate(env, lqe))
-                       need_id_notify = true;
-
                /* clear grace time */
                if (lqe->lqe_softlimit == 0 ||
                    lqe->lqe_granted <= lqe->lqe_softlimit)