[Ocfs2-devel] [PATCH 1/2] Introduce ocfs2_recover_node

Wengang Wang wen.gang.wang at oracle.com
Tue Nov 16 17:49:34 PST 2010


On 10-11-16 16:59, Goldwyn Rodrigues wrote:

<snip>
> @@ -212,8 +198,8 @@ static int ocfs2_recovery_thread_running(struct
> ocfs2_super *osb)
> 
>  void ocfs2_recovery_exit(struct ocfs2_super *osb)
>  {
> -	struct ocfs2_recovery_map *rm;
> -
> +	struct list_head *iter;
> +	struct ocfs2_recover_node *rn;
>  	/* disable any new recovery threads and wait for any currently
>  	 * running ones to exit. Do this before setting the vol_state. */
>  	mutex_lock(&osb->recovery_lock);
> @@ -226,75 +212,66 @@ void ocfs2_recovery_exit(struct ocfs2_super *osb)
>  	 * complete. */
>  	flush_workqueue(ocfs2_wq);
> 
> -	/*
> -	 * Now that recovery is shut down, and the osb is about to be
> -	 * freed,  the osb_lock is not taken here.
> -	 */
> -	rm = osb->recovery_map;
> -	/* XXX: Should we bug if there are dirty entries? */
> -
> -	kfree(rm);
> +	spin_lock(&osb->osb_lock);
> +	list_for_each(iter, &osb->s_recovery_nodes) {

list_for_each_safe()?

regards,
wengang.
> +			rn = list_entry(iter, struct ocfs2_recover_node,
> +					rn_list);
> +			list_del(&rn->rn_list);
> +	}
> +	spin_unlock(&osb->osb_lock);
>  }
> 



More information about the Ocfs2-devel mailing list