aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/dlm/dlmdomain.c
diff options
context:
space:
mode:
authorSunil Mushran <sunil.mushran@oracle.com>2008-03-10 18:16:21 -0400
committerMark Fasheh <mfasheh@suse.com>2008-04-18 11:56:08 -0400
commit29576f8bb54045be944ba809d4fca1ad77c94165 (patch)
tree9fd56f286df824a819e8fe44316076f55bfb2030 /fs/ocfs2/dlm/dlmdomain.c
parent724bdca9b8449d9ee5f779dc27ee3d906a04508c (diff)
ocfs2/dlm: Link all lockres' to a tracking list
This patch links all the lockres' to a tracking list in dlm_ctxt. We will use this in an upcoming patch that will walk the entire list and to dump the lockres states to a debugfs file. Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com> Signed-off-by: Joel Becker <joel.becker@oracle.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs/ocfs2/dlm/dlmdomain.c')
-rw-r--r--fs/ocfs2/dlm/dlmdomain.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/ocfs2/dlm/dlmdomain.c b/fs/ocfs2/dlm/dlmdomain.c
index b092364d0d52..4f7695c851ed 100644
--- a/fs/ocfs2/dlm/dlmdomain.c
+++ b/fs/ocfs2/dlm/dlmdomain.c
@@ -644,6 +644,7 @@ int dlm_shutting_down(struct dlm_ctxt *dlm)
644void dlm_unregister_domain(struct dlm_ctxt *dlm) 644void dlm_unregister_domain(struct dlm_ctxt *dlm)
645{ 645{
646 int leave = 0; 646 int leave = 0;
647 struct dlm_lock_resource *res;
647 648
648 spin_lock(&dlm_domain_lock); 649 spin_lock(&dlm_domain_lock);
649 BUG_ON(dlm->dlm_state != DLM_CTXT_JOINED); 650 BUG_ON(dlm->dlm_state != DLM_CTXT_JOINED);
@@ -673,6 +674,15 @@ void dlm_unregister_domain(struct dlm_ctxt *dlm)
673 msleep(500); 674 msleep(500);
674 mlog(0, "%s: more migration to do\n", dlm->name); 675 mlog(0, "%s: more migration to do\n", dlm->name);
675 } 676 }
677
678 /* This list should be empty. If not, print remaining lockres */
679 if (!list_empty(&dlm->tracking_list)) {
680 mlog(ML_ERROR, "Following lockres' are still on the "
681 "tracking list:\n");
682 list_for_each_entry(res, &dlm->tracking_list, tracking)
683 dlm_print_one_lock_resource(res);
684 }
685
676 dlm_mark_domain_leaving(dlm); 686 dlm_mark_domain_leaving(dlm);
677 dlm_leave_domain(dlm); 687 dlm_leave_domain(dlm);
678 dlm_complete_dlm_shutdown(dlm); 688 dlm_complete_dlm_shutdown(dlm);
@@ -1526,6 +1536,7 @@ static struct dlm_ctxt *dlm_alloc_ctxt(const char *domain,
1526 INIT_LIST_HEAD(&dlm->reco.node_data); 1536 INIT_LIST_HEAD(&dlm->reco.node_data);
1527 INIT_LIST_HEAD(&dlm->purge_list); 1537 INIT_LIST_HEAD(&dlm->purge_list);
1528 INIT_LIST_HEAD(&dlm->dlm_domain_handlers); 1538 INIT_LIST_HEAD(&dlm->dlm_domain_handlers);
1539 INIT_LIST_HEAD(&dlm->tracking_list);
1529 dlm->reco.state = 0; 1540 dlm->reco.state = 0;
1530 1541
1531 INIT_LIST_HEAD(&dlm->pending_asts); 1542 INIT_LIST_HEAD(&dlm->pending_asts);