summaryrefslogtreecommitdiffstats
path: root/fs/dlm/lock.c
diff options
context:
space:
mode:
authorAlexander Aring <aahringo@redhat.com>2024-04-02 15:18:00 -0400
committerDavid Teigland <teigland@redhat.com>2024-04-09 11:44:49 -0500
commitaff46e0f24cd3adc54ec83f4cf834ff9ccb69307 (patch)
tree918487c6ff1b918de6ab440d13afb2500126830f /fs/dlm/lock.c
parent29e345f3c68e2bcf094162fc36394d348ccfb9ff (diff)
downloadlinux-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.c2
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.