[Ocfs2-devel] [PATCH 17/18] ocfs2_dlm: Fix lockname in lockres print function

Joel Becker Joel.Becker at oracle.com
Thu Feb 28 16:55:47 PST 2008


On Mon, Feb 25, 2008 at 12:21:01PM -0800, Sunil Mushran wrote:
> __dlm_print_one_lock_resource was printing lockname incorrectly.
> This patch fixes that among other small printk cleanups.
> 
> Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>
Signed-off-by: Joel Becker <joel.becker at oracle.com>

> ---
>  fs/ocfs2/dlm/dlmdebug.c |   26 ++++++++++++++++++--------
>  1 files changed, 18 insertions(+), 8 deletions(-)
> 
> diff --git a/fs/ocfs2/dlm/dlmdebug.c b/fs/ocfs2/dlm/dlmdebug.c
> index 2a1c27c..3e16e91 100644
> --- a/fs/ocfs2/dlm/dlmdebug.c
> +++ b/fs/ocfs2/dlm/dlmdebug.c
> @@ -47,6 +47,7 @@
>  static struct dentry *dlm_debugfs_root = NULL;
>  
>  int dump_mle(struct dlm_master_list_entry *mle, char *buf, int len);
> +int stringify_lockname(const char *lockname, int locklen, char *buf, int len);
>  
>  static void dlm_print_lockres_refmap(struct dlm_lock_resource *res)
>  {
> @@ -76,14 +77,23 @@ void __dlm_print_one_lock_resource(struct dlm_lock_resource *res)
>  {
>  	struct list_head *iter2;
>  	struct dlm_lock *lock;
> +	char buf[DLM_LOCKID_NAME_MAX];
>  
>  	assert_spin_locked(&res->spinlock);
>  
> -	mlog(ML_NOTICE, "lockres: %.*s, owner=%u, state=%u\n",
> -	       res->lockname.len, res->lockname.name,
> -	       res->owner, res->state);
> -	mlog(ML_NOTICE, "  last used: %lu, on purge list: %s\n",
> -	     res->last_used, list_empty(&res->purge) ? "no" : "yes");
> +	stringify_lockname(res->lockname.name, res->lockname.len,
> +			   buf, sizeof(buf) - 1);
> +	mlog(ML_NOTICE, "lockres: %s, owner=%u, state=%u\n", buf, res->owner,
> +	     res->state);
> +	mlog(ML_NOTICE, "  last used: %lu, refcnt: %u, on purge list: %s\n",
> +	     res->last_used, atomic_read(&res->refs.refcount),
> +	     list_empty(&res->purge) ? "no" : "yes");
> +	mlog(ML_NOTICE, "  on dirty list: %s, on reco list: %s, migrating pending: %s\n",
> +	     list_empty(&res->dirty) ? "no" : "yes",
> +	     list_empty(&res->recovering) ? "no" : "yes",
> +	     res->migration_pending ? "yes" : "no");
> +	mlog(ML_NOTICE, "  inflight locks: %d, asts reserved: %d\n",
> +	     res->inflight_locks, atomic_read(&res->asts_reserved));
>  	dlm_print_lockres_refmap(res);
>  	mlog(ML_NOTICE, "  granted queue: \n");
>  	list_for_each(iter2, &res->granted) {
> @@ -105,10 +115,11 @@ void __dlm_print_one_lock_resource(struct dlm_lock_resource *res)
>  		lock = list_entry(iter2, struct dlm_lock, list);
>  		spin_lock(&lock->spinlock);
>  		mlog(ML_NOTICE, "    type=%d, conv=%d, node=%u, "
> -		       "cookie=%u:%llu, ast=(empty=%c,pend=%c), bast=(empty=%c,pend=%c)\n",
> +		       "cookie=%u:%llu, ref=%u, ast=(empty=%c,pend=%c), bast=(empty=%c,pend=%c)\n",
>  		       lock->ml.type, lock->ml.convert_type, lock->ml.node,
>  		       dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)),
>  		       dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)),
> +		       atomic_read(&lock->lock_refs.refcount),
>  		       list_empty(&lock->ast_list) ? 'y' : 'n',
>  		       lock->ast_pending ? 'y' : 'n',
>  		       list_empty(&lock->bast_list) ? 'y' : 'n',
> @@ -268,8 +279,7 @@ EXPORT_SYMBOL_GPL(dlm_errname);
>   *
>   * For more on lockname formats, please refer to dlmglue.c and ocfs2_lockid.h.
>   */
> -static int stringify_lockname(const char *lockname, int locklen,
> -			      char *buf, int len)
> +int stringify_lockname(const char *lockname, int locklen, char *buf, int len)
>  {
>  	int out = 0;
>  	__be64 inode_blkno_be;
> -- 
> 1.5.2.5
> 
> 
> _______________________________________________
> Ocfs2-devel mailing list
> Ocfs2-devel at oss.oracle.com
> http://oss.oracle.com/mailman/listinfo/ocfs2-devel

-- 

"Nearly all men can stand adversity, but if you really want to
 test a man's character, give him power."
	- Abraham Lincoln

Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker at oracle.com
Phone: (650) 506-8127



More information about the Ocfs2-devel mailing list