Whamcloud - gitweb
LU-16913 quota: notify newest lqe in qmt_set_id_notify 37/53637/2
authorSergey Cheremencev <scherementsev@ddn.com>
Wed, 10 Jan 2024 18:56:03 +0000 (21:56 +0300)
committerOleg Drokin <green@whamcloud.com>
Thu, 15 Feb 2024 07:09:00 +0000 (07:09 +0000)
commit99d63b24aee4a0972d2ebe72325123df45c82f0c
tree0bdffd210d9a8a617a54d5dc7a35e33dee05d145
parent304ca31e2aa15c576e468a86e45d8817c8eca391
LU-16913 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

Fixes: 09f9fb3211 ("LU-11023 quota: quota pools for OSTs")
Signed-off-by: Sergey Cheremencev <scherementsev@ddn.com>
Change-Id: I3a3114d880077c87e61fccf4f32e3845bd42d842
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53637
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Hongchao Zhang <hongchao@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/quota/qmt_handler.c