Whamcloud - gitweb
EX-7849 quota: notify newest lqe in qmt_set_id_notify
authorSergey Cheremencev <scherementsev@ddn.com>
Fri, 15 Dec 2023 18:57:02 +0000 (21:57 +0300)
committerAndreas Dilger <adilger@whamcloud.com>
Sat, 13 Jan 2024 02:47:31 +0000 (02:47 +0000)
commitd70fc13054f2ae6f290b3e0a186bbf638a17a03c
treed919fa23ec8c5161284b4702babc828b9c2075bd
parent15387f845b6a3f7a68dc3913c39c9d44dfd719a1
EX-7849 quota: notify newest lqe in qmt_set_id_notify

It is possible that lqe_locate may call lqe_find inside
qmt_pool_lqes_lookup_spec and insert the 2nd lqe into
lqs_hash during processing the previous one. Do not add the
1st lqe to be processed by qmt_reba_thread in qmt_id_lock_notify,
as this lqe will be freed in the end of lqe_locate_find due
to the race with the 2nd that is already exist in lqs_hash.
This fix should potentially fix the following assertion:

  (qmt_lock.c:950:qmt_id_lock_glimpse()) ASSERTION( lqe->lqe_gl ) failed:
  (qmt_lock.c:950:qmt_id_lock_glimpse()) LBUG

Lustre-change: https://review.whamcloud.com/53637
Lustre-commit: 2832874970232fb5e1deedbf89b7a482518e6886

Test-Parameters: trivial testlist=sanity-quota,racer
Test-Parameters: trivial testlist=sanity-quota,racer
Test-Parameters: trivial testlist=sanity-quota,racer
Test-Parameters: trivial testlist=sanity-quota,racer
Test-Parameters: trivial testlist=sanity-quota,racer
Test-Parameters: trivial testlist=sanity-quota,racer
Test-Parameters: trivial testlist=sanity-quota,racer
Test-Parameters: trivial testlist=sanity-quota,racer
Fixes: 09f9fb3211 ("LU-11023 quota: quota pools for OSTs")
Signed-off-by: Sergey Cheremencev <scherementsev@ddn.com>
Change-Id: I179edb06ec8c784636f566ffeba0035c6758a55b
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/53496
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/quota/qmt_handler.c