Whamcloud - gitweb
LU-16772 quota: protect lqe_glbl_data in qmt_site_recalc_cb 48/50748/10
authorSergey Cheremencev <scherementsev@ddn.com>
Tue, 25 Apr 2023 18:10:21 +0000 (22:10 +0400)
committerOleg Drokin <green@whamcloud.com>
Wed, 14 Jun 2023 21:40:28 +0000 (21:40 +0000)
commit50ff4d1da63e8bc1dba4b6b52219fb7024f8d66f
tree9928826f40ea3e5cc202b1bdf2928f2d99889a3d
parentf6be07c457385cfacd9b802e4cade9f6f6ab7d6f
LU-16772 quota: protect lqe_glbl_data in qmt_site_recalc_cb

lqe_glbl_data should be protected with lqe_glbl_data_lock in
qmt_site_recalc_sb like it did in other places. Otherwise it
may cause following panic:

  BUG: unable to handle kernel NULL pointer at 00000000000000f8
  qmt_site_recalc_cb+0x2f8/0x790 [lquota]
  cfs_hash_for_each_tight+0x121/0x310 [libcfs]
  qmt_pool_recalc+0x372/0x9f0 [lquota]

Also protect lqe_glbl_data access with lqe_glbl_data_lock in
qmt_lvbo_free().

Fixes: 1dbcbd70f8 ("LU-15021 quota: protect lqe_glbl_data in lqe")
Signed-off-by: Sergey Cheremencev <scherementsev@ddn.com>
Change-Id: I030f14b02062151f1708a03ac7414a9991f798f6
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/50748
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/quota/qmt_entry.c
lustre/quota/qmt_lock.c
lustre/quota/qmt_pool.c