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(). - Joe