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

Wengang Wang wen.gang.wang at oracle.com
Tue Nov 16 18:04:37 PST 2010


On 10-11-17 10:00, Wengang Wang wrote:
> On 10-11-17 09:49, Wengang Wang wrote:
> > 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);
> 
> If you need to do this here, I guess you may also want to free rm.

Sorry, typo. s/rm/rn
> 
> regards,
> wengang.
> > > +	}
> > > +	spin_unlock(&osb->osb_lock);
> > >  }
> > > 



More information about the Ocfs2-devel mailing list