Whamcloud - gitweb
LU-17500 qmt: avoid "enforced bit set, but neither"
authorSergey Cheremencev <scherementsev@ddn.com>
Fri, 2 Feb 2024 20:07:00 +0000 (23:07 +0300)
committerAndreas Dilger <adilger@whamcloud.com>
Sun, 3 Mar 2024 10:26:23 +0000 (10:26 +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

Lustre-change: https://review.whamcloud.com/53893
Lustre-commit: 7498e7c38dffe23752b03bf168f3b5419855b10b

Signed-off-by: Sergey Cheremencev <scherementsev@ddn.com>
Change-Id: I8f5d9630f43b66ae7ea2be0bf2c735a02e1f6299
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/54185
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/quota/qmt_handler.c

index a4941c1..d382aef 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)