Re: [PATCH 00/22 take 3] UBI: Unsorted Block Images

Jörn Engel
2007-03-25T21:17:54Z

On Wed, 21 March 2007 12:25:34 +0100, Thomas Gleixner wrote:
> On Wed, 2007-03-21 at 12:05 +0100, Jörn Engel wrote:
> >
> > Also LogFS currently requires erasesizes of 2^n.
>
> Last time I talked to you about that, you said it would be possible and
> fixable.

Actually, no. LogFS is not broken, there is nothing to fix.

And there is no fundamental reason why UBI should export blocks with
non-power-of-two sizes. UBI currently consists of two parts that are
intimately intertwined in the current implementation, but have
relatively little connection otherwise.

1. Logical volume management.
2. Static volumes.

Logical volume management can just as easily move its management
information into a table, instead of having it spread across all blocks.
Blocks can keep their original size. Since you have to scan flash
anyway, you can also scan for a table, compare a magical number and do
some extra check to protect yourself against a UBI image inside some
logical volume. No big deal.

Static volumes can keep a header inside their volumes. The tiny
first-stage bootloader is currently scanning flash and can continue to
do so. But at least this header no longer causes trouble for LogFS or
any other UBI user.

UBI is just as broken as LogFS is. It works with every user in mainline
(which comes down to JFFS2). LogFS works with every MTD device in
mainline. The only combination that doesn't work is LogFS on UBI - due
to deliberate design decisions on both sides.

Jörn

--
Joern's library part 8: