master node can not be recovered

Artem Bityutskiy dedekind1 at gmail.com
Wed Nov 4 00:57:59 PST 2015


On Wed, 2015-11-04 at 09:40 +0100, Boris Brezillon wrote:
> The question is, what should we do in this case? Should we drop all
> the
> pages following the corrupted page in the LEB? Should we only drop
> the
> faulty page and parse the nodes in the valid pages we can find after
> this corruption (I don't know if it can be the case, but if some
> nodes
> depend on other nodes, doing that may not work)? Any other option?

To recap my opinion expressed in the other thread.

1. We only care about paired pages in the power cut context.
2. This means that we care about paired pages in the same places where
we care about losing data or metadata.
3. UBIFS has a number of places where it cares about data and metadata,
and paired pages story should boil down to changes those places.
Examples of the places would be: wbuf sync, the log, the master nodes,
LPT.
4. The strategy seems to be pretty simple: skipping enough pages. And
UBIFS already has the "padding" mechanism which does this.

Or in other words, whenever we have to make sure the data does not get
affected by a power cut, we skip pages. This happens when user
syncs/fsyncs/unmounts/etc, when we commit, when we write the master
node or a log nod, etc. All are limited number of places, where we
already explicitly care about power cuts.




More information about the linux-mtd mailing list