diff options
author | Alexander Aring <aahringo@redhat.com> | 2024-04-02 15:18:00 -0400 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2024-04-09 11:44:49 -0500 |
commit | aff46e0f24cd3adc54ec83f4cf834ff9ccb69307 (patch) | |
tree | 918487c6ff1b918de6ab440d13afb2500126830f /fs/dlm/lock.c | |
parent | 29e345f3c68e2bcf094162fc36394d348ccfb9ff (diff) | |
download | linux-stable-aff46e0f24cd3adc54ec83f4cf834ff9ccb69307.tar.gz linux-stable-aff46e0f24cd3adc54ec83f4cf834ff9ccb69307.tar.bz2 linux-stable-aff46e0f24cd3adc54ec83f4cf834ff9ccb69307.zip |
dlm: use a new list for recovery of master rsb names
Add a new "masters_list" for master rsb structs, with a new
rwlock. The new list is created and used during the recovery
process to send the master rsb names to new nodes. With this
change, the current "root_list" can be used without locking.
Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
Diffstat (limited to 'fs/dlm/lock.c')
-rw-r--r-- | fs/dlm/lock.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c index d87464614bc5..e0ab7432ca4d 100644 --- a/fs/dlm/lock.c +++ b/fs/dlm/lock.c @@ -423,6 +423,7 @@ static int get_rsb_struct(struct dlm_ls *ls, const void *name, int len, INIT_LIST_HEAD(&r->res_waitqueue); INIT_LIST_HEAD(&r->res_root_list); INIT_LIST_HEAD(&r->res_recover_list); + INIT_LIST_HEAD(&r->res_masters_list); *r_ret = r; return 0; @@ -1168,6 +1169,7 @@ static void kill_rsb(struct kref *kref) DLM_ASSERT(list_empty(&r->res_waitqueue), dlm_dump_rsb(r);); DLM_ASSERT(list_empty(&r->res_root_list), dlm_dump_rsb(r);); DLM_ASSERT(list_empty(&r->res_recover_list), dlm_dump_rsb(r);); + DLM_ASSERT(list_empty(&r->res_masters_list), dlm_dump_rsb(r);); } /* Attaching/detaching lkb's from rsb's is for rsb reference counting. |