UBI/UBIFS interrupted write page handling

Artem Bityutskiy dedekind1 at gmail.com
Thu Sep 23 14:35:13 EDT 2010


On Thu, 2010-09-23 at 18:14 +0200, Matthieu CASTET wrote:
> Hi Artem,
> 
> Artem Bityutskiy a écrit :
> > On Thu, 2010-09-09 at 20:51 +0300, Artem Bityutskiy wrote:
> >>> On one of our test, we are in case 3. Ubifs find a valid interrupt page 
> >>> on mount and trust it. Latter the page become corrupted [1] because it 
> >>> is unstable.
> >> OK, I see.
> >>
> >>> To identify a interrupted write page we :
> >>> - could use interrupted flags for static volume
> >>> - handle with care data move (copy flags) : if sqnum of the copy is the 
> >>> biggest, we should ignore it/copy it.
> >>> - use upper layer for dynamic volume. For ubifs this could be a journal.
> >> Actually, for UBIFS things are rather simple. In UBIFS every writes go
> >> to the journal. Even GC writes to the journal. So when we are mounting
> >> after an unclean reboot, we can simply refresh the last LEBs of all
> >> journal heads using the 'ubi_leb_change()' call. This should handle all
> >> the three cases you describe.
> >>
> >> I do not think it is very difficult to do.
> > 
> > Matthieu, I can try to do to make some patches for you, but when you
> > come back on-line and start actively testing :-) I do want to help you
> > and improve UBIFS, but I'm not very motivated to do this unless this is
> > really needed. I think we have few other pending issues, and the ball is
> > on your side. :-)
> > 
> Ok.
> 
> I will run some tests this weekend.
> 
> What I have to test ?
> 
> - 
> http://git.infradead.org/users/dedekind/ubifs-v2.6.28.git/commit/7240a7396fa4b1998d0463123c6d1d192935f969
> - UBI reliability improvements patch
> - c->gc_lnum is -1 patch

Yes. But it would be less confusing if you just back-ported all
ubifs-2.6.git / master. c->gc_lnum is a separate patch, of course.

-- 
Best Regards,
Artem Bityutskiy (Битюцкий Артём)




More information about the linux-mtd mailing list