[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Cluster-devel] [PATCH 2/5] dlm: move recovery barrier calls



Hi,

Acked-by: Steven Whitehouse <swhiteho redhat com>

Steve.

On Fri, 2011-12-16 at 16:03 -0600, David Teigland wrote:
> Put all the calls to recovery barriers in the same function
> to clarify where they each happen.  Should not change any behavior.
> Also modify some recovery debug lines to make them consistent.
> 
> Signed-off-by: David Teigland <teigland redhat com>
> ---
>  fs/dlm/dir.c      |    1 -
>  fs/dlm/member.c   |    7 +------
>  fs/dlm/recover.c  |    2 --
>  fs/dlm/recoverd.c |   45 +++++++++++++++++++++++++++------------------
>  4 files changed, 28 insertions(+), 27 deletions(-)
> 
> diff --git a/fs/dlm/dir.c b/fs/dlm/dir.c
> index 7b84c1d..8364157 100644
> --- a/fs/dlm/dir.c
> +++ b/fs/dlm/dir.c
> @@ -290,7 +290,6 @@ int dlm_recover_directory(struct dlm_ls *ls)
>  
>   out_status:
>  	error = 0;
> -	dlm_set_recover_status(ls, DLM_RS_DIR);
>  	log_debug(ls, "dlm_recover_directory %d entries", count);
>   out_free:
>  	kfree(last_name);
> diff --git a/fs/dlm/member.c b/fs/dlm/member.c
> index b12532e..5ebd1df 100644
> --- a/fs/dlm/member.c
> +++ b/fs/dlm/member.c
> @@ -251,7 +251,6 @@ int dlm_recover_members(struct dlm_ls *ls, struct dlm_recover *rv, int *neg_out)
>  	ls->ls_low_nodeid = low;
>  
>  	make_member_array(ls);
> -	dlm_set_recover_status(ls, DLM_RS_NODES);
>  	*neg_out = neg;
>  
>  	error = ping_members(ls);
> @@ -261,12 +260,8 @@ int dlm_recover_members(struct dlm_ls *ls, struct dlm_recover *rv, int *neg_out)
>  		ls->ls_members_result = error;
>  		complete(&ls->ls_members_done);
>  	}
> -	if (error)
> -		goto out;
>  
> -	error = dlm_recover_members_wait(ls);
> - out:
> -	log_debug(ls, "total members %d error %d", ls->ls_num_nodes, error);
> +	log_debug(ls, "dlm_recover_members %d nodes", ls->ls_num_nodes);
>  	return error;
>  }
>  
> diff --git a/fs/dlm/recover.c b/fs/dlm/recover.c
> index 50467ce..81b2393 100644
> --- a/fs/dlm/recover.c
> +++ b/fs/dlm/recover.c
> @@ -542,8 +542,6 @@ int dlm_recover_locks(struct dlm_ls *ls)
>   out:
>  	if (error)
>  		recover_list_clear(ls);
> -	else
> -		dlm_set_recover_status(ls, DLM_RS_LOCKS);
>  	return error;
>  }
>  
> diff --git a/fs/dlm/recoverd.c b/fs/dlm/recoverd.c
> index 774da3c..5a9e1a4 100644
> --- a/fs/dlm/recoverd.c
> +++ b/fs/dlm/recoverd.c
> @@ -54,7 +54,7 @@ static int ls_recover(struct dlm_ls *ls, struct dlm_recover *rv)
>  	unsigned long start;
>  	int error, neg = 0;
>  
> -	log_debug(ls, "recover %llx", (unsigned long long)rv->seq);
> +	log_debug(ls, "dlm_recover %llx", (unsigned long long)rv->seq);
>  
>  	mutex_lock(&ls->ls_recoverd_active);
>  
> @@ -76,14 +76,22 @@ static int ls_recover(struct dlm_ls *ls, struct dlm_recover *rv)
>  
>  	/*
>  	 * Add or remove nodes from the lockspace's ls_nodes list.
> -	 * Also waits for all nodes to complete dlm_recover_members.
>  	 */
>  
>  	error = dlm_recover_members(ls, rv, &neg);
>  	if (error) {
> -		log_debug(ls, "recover_members failed %d", error);
> +		log_debug(ls, "dlm_recover_members error %d", error);
>  		goto fail;
>  	}
> +
> +	dlm_set_recover_status(ls, DLM_RS_NODES);
> +
> +	error = dlm_recover_members_wait(ls);
> +	if (error) {
> +		log_debug(ls, "dlm_recover_members_wait error %d", error);
> +		goto fail;
> +	}
> +
>  	start = jiffies;
>  
>  	/*
> @@ -93,17 +101,15 @@ static int ls_recover(struct dlm_ls *ls, struct dlm_recover *rv)
>  
>  	error = dlm_recover_directory(ls);
>  	if (error) {
> -		log_debug(ls, "recover_directory failed %d", error);
> +		log_debug(ls, "dlm_recover_directory error %d", error);
>  		goto fail;
>  	}
>  
> -	/*
> -	 * Wait for all nodes to complete directory rebuild.
> -	 */
> +	dlm_set_recover_status(ls, DLM_RS_DIR);
>  
>  	error = dlm_recover_directory_wait(ls);
>  	if (error) {
> -		log_debug(ls, "recover_directory_wait failed %d", error);
> +		log_debug(ls, "dlm_recover_directory_wait error %d", error);
>  		goto fail;
>  	}
>  
> @@ -133,7 +139,7 @@ static int ls_recover(struct dlm_ls *ls, struct dlm_recover *rv)
>  
>  		error = dlm_recover_masters(ls);
>  		if (error) {
> -			log_debug(ls, "recover_masters failed %d", error);
> +			log_debug(ls, "dlm_recover_masters error %d", error);
>  			goto fail;
>  		}
>  
> @@ -143,13 +149,15 @@ static int ls_recover(struct dlm_ls *ls, struct dlm_recover *rv)
>  
>  		error = dlm_recover_locks(ls);
>  		if (error) {
> -			log_debug(ls, "recover_locks failed %d", error);
> +			log_debug(ls, "dlm_recover_locks error %d", error);
>  			goto fail;
>  		}
>  
> +		dlm_set_recover_status(ls, DLM_RS_LOCKS);
> +
>  		error = dlm_recover_locks_wait(ls);
>  		if (error) {
> -			log_debug(ls, "recover_locks_wait failed %d", error);
> +			log_debug(ls, "dlm_recover_locks_wait error %d", error);
>  			goto fail;
>  		}
>  
> @@ -170,7 +178,7 @@ static int ls_recover(struct dlm_ls *ls, struct dlm_recover *rv)
>  
>  		error = dlm_recover_locks_wait(ls);
>  		if (error) {
> -			log_debug(ls, "recover_locks_wait failed %d", error);
> +			log_debug(ls, "dlm_recover_locks_wait error %d", error);
>  			goto fail;
>  		}
>  	}
> @@ -186,9 +194,10 @@ static int ls_recover(struct dlm_ls *ls, struct dlm_recover *rv)
>  	dlm_purge_requestqueue(ls);
>  
>  	dlm_set_recover_status(ls, DLM_RS_DONE);
> +
>  	error = dlm_recover_done_wait(ls);
>  	if (error) {
> -		log_debug(ls, "recover_done_wait failed %d", error);
> +		log_debug(ls, "dlm_recover_done_wait error %d", error);
>  		goto fail;
>  	}
>  
> @@ -200,25 +209,25 @@ static int ls_recover(struct dlm_ls *ls, struct dlm_recover *rv)
>  
>  	error = enable_locking(ls, rv->seq);
>  	if (error) {
> -		log_debug(ls, "enable_locking failed %d", error);
> +		log_debug(ls, "enable_locking error %d", error);
>  		goto fail;
>  	}
>  
>  	error = dlm_process_requestqueue(ls);
>  	if (error) {
> -		log_debug(ls, "process_requestqueue failed %d", error);
> +		log_debug(ls, "dlm_process_requestqueue error %d", error);
>  		goto fail;
>  	}
>  
>  	error = dlm_recover_waiters_post(ls);
>  	if (error) {
> -		log_debug(ls, "recover_waiters_post failed %d", error);
> +		log_debug(ls, "dlm_recover_waiters_post error %d", error);
>  		goto fail;
>  	}
>  
>  	dlm_grant_after_purge(ls);
>  
> -	log_debug(ls, "recover %llx done: %u ms",
> +	log_debug(ls, "dlm_recover %llx done: %u ms",
>  		  (unsigned long long)rv->seq,
>  		  jiffies_to_msecs(jiffies - start));
>  	mutex_unlock(&ls->ls_recoverd_active);
> @@ -227,7 +236,7 @@ static int ls_recover(struct dlm_ls *ls, struct dlm_recover *rv)
>  
>   fail:
>  	dlm_release_root_list(ls);
> -	log_debug(ls, "recover %llx error %d",
> +	log_debug(ls, "dlm_recover %llx error %d",
>  		  (unsigned long long)rv->seq, error);
>  	mutex_unlock(&ls->ls_recoverd_active);
>  	return error;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]