[dm-devel] [RFC][PATCH] Fix BIO reordering when resuming devices

Christophe Saout christophe at saout.de
Fri Jan 2 06:41:02 UTC 2004


Am Fr, den 02.01.2004 schrieb Joe Thornber um 12:56:

> On Thu, Jan 01, 2004 at 10:14:30PM +0100, Christophe Saout wrote:
> > @@ -891,12 +902,14 @@
> >  
> >  	dm_table_resume_targets(md->map);
> >  	clear_bit(DMF_SUSPENDED, &md->flags);
> > +	def = md->deferred_head;
> > +	md->deferred_head = md->deferred_tail = NULL;
> > +
> > +	flush_deferred_io(md, def);
> > +
> >  	clear_bit(DMF_BLOCK_IO, &md->flags);
> > -	def = md->deferred;
> > -	md->deferred = NULL;
> >  	up_write(&md->lock);
> >  
> > -	flush_deferred_io(def);
> >  	blk_run_queues();
> 
> Is there any reason why you have moved the flush_deferred_io() in
> between the 2 clear_bit() calls, rather than after the second ?  After
> all it is the md->lock that is blocking dm_request().

Ah, not, there's no reason. That was just left over from my first
attempt that requeued incoming bios while the other ones were being
flushed (which could delay dm_resume for a long time and I then decided
to do it this way).

So you can be moved back, sure.






More information about the dm-devel mailing list