sync() takes minutes while erasing

Joakim Tjernlund joakim.tjernlund at transmode.se
Thu Jun 28 14:59:51 EDT 2007


> -----Original Message-----
> From: David Woodhouse [mailto:dwmw2 at infradead.org] 
> Sent: den 28 juni 2007 20:54
> To: joakim.tjernlund at transmode.se
> Cc: Linux MTD mailing list
> Subject: Re: sync() takes minutes while erasing
> 
> On Wed, 2007-06-20 at 16:49 +0200, Joakim Tjernlund wrote:
> > Ok, found the cause:
> >  jffs2_erase_pending_blocks(c, 0) is called from
> >  jffs2_write_super() and it hangs until all
> >  pending erases are complete.
> > 
> > Why do jffs2_write_super() need to call 
> > jffs2_erase_pending_blocks(c, 0)? Seems like a bad idea to me. 
> 
> It's because pdflush is the best context I could find for 
> actually doing
> the erases we need. But now I think we can use pdflush_operation()
> instead of having to do it from write_super(), so maybe we can fix the
> thing that offends you.

Thanks, this stop the complaints from the test team. They
don't like to wait a few mins every time they delete an old install
and reboot.

  Jocke




More information about the linux-mtd mailing list