diff options
author | Sunil Mushran <sunil.mushran@oracle.com> | 2008-03-10 18:16:21 -0400 |
---|---|---|
committer | Mark Fasheh <mfasheh@suse.com> | 2008-04-18 11:56:08 -0400 |
commit | 29576f8bb54045be944ba809d4fca1ad77c94165 (patch) | |
tree | 9fd56f286df824a819e8fe44316076f55bfb2030 /fs/ocfs2/dlm/dlmmaster.c | |
parent | 724bdca9b8449d9ee5f779dc27ee3d906a04508c (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/dlmmaster.c')
-rw-r--r-- | fs/ocfs2/dlm/dlmmaster.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c index ac9ed31e5445..97133465891c 100644 --- a/fs/ocfs2/dlm/dlmmaster.c +++ b/fs/ocfs2/dlm/dlmmaster.c | |||
@@ -639,6 +639,14 @@ static void dlm_lockres_release(struct kref *kref) | |||
639 | mlog(0, "destroying lockres %.*s\n", res->lockname.len, | 639 | mlog(0, "destroying lockres %.*s\n", res->lockname.len, |
640 | res->lockname.name); | 640 | res->lockname.name); |
641 | 641 | ||
642 | if (!list_empty(&res->tracking)) | ||
643 | list_del_init(&res->tracking); | ||
644 | else { | ||
645 | mlog(ML_ERROR, "Resource %.*s not on the Tracking list\n", | ||
646 | res->lockname.len, res->lockname.name); | ||
647 | dlm_print_one_lock_resource(res); | ||
648 | } | ||
649 | |||
642 | if (!hlist_unhashed(&res->hash_node) || | 650 | if (!hlist_unhashed(&res->hash_node) || |
643 | !list_empty(&res->granted) || | 651 | !list_empty(&res->granted) || |
644 | !list_empty(&res->converting) || | 652 | !list_empty(&res->converting) || |
@@ -706,6 +714,7 @@ static void dlm_init_lockres(struct dlm_ctxt *dlm, | |||
706 | INIT_LIST_HEAD(&res->dirty); | 714 | INIT_LIST_HEAD(&res->dirty); |
707 | INIT_LIST_HEAD(&res->recovering); | 715 | INIT_LIST_HEAD(&res->recovering); |
708 | INIT_LIST_HEAD(&res->purge); | 716 | INIT_LIST_HEAD(&res->purge); |
717 | INIT_LIST_HEAD(&res->tracking); | ||
709 | atomic_set(&res->asts_reserved, 0); | 718 | atomic_set(&res->asts_reserved, 0); |
710 | res->migration_pending = 0; | 719 | res->migration_pending = 0; |
711 | res->inflight_locks = 0; | 720 | res->inflight_locks = 0; |
@@ -721,6 +730,8 @@ static void dlm_init_lockres(struct dlm_ctxt *dlm, | |||
721 | 730 | ||
722 | res->last_used = 0; | 731 | res->last_used = 0; |
723 | 732 | ||
733 | list_add_tail(&res->tracking, &dlm->tracking_list); | ||
734 | |||
724 | memset(res->lvb, 0, DLM_LVB_LEN); | 735 | memset(res->lvb, 0, DLM_LVB_LEN); |
725 | memset(res->refmap, 0, sizeof(res->refmap)); | 736 | memset(res->refmap, 0, sizeof(res->refmap)); |
726 | } | 737 | } |