提交 e9f0b6a6 编写于 作者: S Sunil Mushran

ocfs2/dlm: Trace insert/remove of resource to/from hash

Add mlog to trace adding and removing the resource from/to the hash table.
Signed-off-by: NSunil Mushran <sunil.mushran@oracle.com>
上级 8d400b81
...@@ -877,9 +877,8 @@ static inline void dlm_lockres_get(struct dlm_lock_resource *res) ...@@ -877,9 +877,8 @@ static inline void dlm_lockres_get(struct dlm_lock_resource *res)
kref_get(&res->refs); kref_get(&res->refs);
} }
void dlm_lockres_put(struct dlm_lock_resource *res); void dlm_lockres_put(struct dlm_lock_resource *res);
void __dlm_unhash_lockres(struct dlm_lock_resource *res); void __dlm_unhash_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res);
void __dlm_insert_lockres(struct dlm_ctxt *dlm, void __dlm_insert_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res);
struct dlm_lock_resource *res);
struct dlm_lock_resource * __dlm_lookup_lockres_full(struct dlm_ctxt *dlm, struct dlm_lock_resource * __dlm_lookup_lockres_full(struct dlm_ctxt *dlm,
const char *name, const char *name,
unsigned int len, unsigned int len,
......
...@@ -157,16 +157,18 @@ static int dlm_protocol_compare(struct dlm_protocol_version *existing, ...@@ -157,16 +157,18 @@ static int dlm_protocol_compare(struct dlm_protocol_version *existing,
static void dlm_unregister_domain_handlers(struct dlm_ctxt *dlm); static void dlm_unregister_domain_handlers(struct dlm_ctxt *dlm);
void __dlm_unhash_lockres(struct dlm_lock_resource *lockres) void __dlm_unhash_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
{ {
if (!hlist_unhashed(&lockres->hash_node)) { if (hlist_unhashed(&res->hash_node))
hlist_del_init(&lockres->hash_node); return;
dlm_lockres_put(lockres);
} mlog(0, "%s: Unhash res %.*s\n", dlm->name, res->lockname.len,
res->lockname.name);
hlist_del_init(&res->hash_node);
dlm_lockres_put(res);
} }
void __dlm_insert_lockres(struct dlm_ctxt *dlm, void __dlm_insert_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
struct dlm_lock_resource *res)
{ {
struct hlist_head *bucket; struct hlist_head *bucket;
struct qstr *q; struct qstr *q;
...@@ -180,6 +182,9 @@ void __dlm_insert_lockres(struct dlm_ctxt *dlm, ...@@ -180,6 +182,9 @@ void __dlm_insert_lockres(struct dlm_ctxt *dlm,
dlm_lockres_get(res); dlm_lockres_get(res);
hlist_add_head(&res->hash_node, bucket); hlist_add_head(&res->hash_node, bucket);
mlog(0, "%s: Hash res %.*s\n", dlm->name, res->lockname.len,
res->lockname.name);
} }
struct dlm_lock_resource * __dlm_lookup_lockres_full(struct dlm_ctxt *dlm, struct dlm_lock_resource * __dlm_lookup_lockres_full(struct dlm_ctxt *dlm,
......
...@@ -207,7 +207,7 @@ static void dlm_purge_lockres(struct dlm_ctxt *dlm, ...@@ -207,7 +207,7 @@ static void dlm_purge_lockres(struct dlm_ctxt *dlm,
BUG(); BUG();
} }
__dlm_unhash_lockres(res); __dlm_unhash_lockres(dlm, res);
/* lockres is not in the hash now. drop the flag and wake up /* lockres is not in the hash now. drop the flag and wake up
* any processes waiting in dlm_get_lock_resource. */ * any processes waiting in dlm_get_lock_resource. */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册