[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