Re: [PATCH 5/5] ubi: Allow to use read-only UBI volume with not enough PEBs

Pali Rohár
2017-07-25T14:27:33Z

On Friday 21 July 2017 22:12:51 Richard Weinberger wrote:
> Pali,
>
> On Fri, Jun 2, 2017 at 5:43 PM, Pali Rohár <pali.rohar@gmail.com> wrote:
> > In read-only mode is skipped auto-resize. For pre-build images ready for
> > auto-resize there can be reserved more PEBs as whole size of pre-build
> > image. In read-only we do not do any write operation therefore this would
> > allow to use read-only UBI volume which is not auto-resized yet.
> >
> > Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> > ---
> > drivers/mtd/ubi/vtbl.c | 14 +++++++++-----
> > 1 file changed, 9 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/mtd/ubi/vtbl.c b/drivers/mtd/ubi/vtbl.c
> > index 263743e..1d708c5 100644
> > --- a/drivers/mtd/ubi/vtbl.c
> > +++ b/drivers/mtd/ubi/vtbl.c
> > @@ -240,8 +240,10 @@ static int vtbl_check(const struct ubi_device *ubi,
> > if (reserved_pebs > ubi->good_peb_count) {
> > ubi_err(ubi, "too large reserved_pebs %d, good PEBs %d",
> > reserved_pebs, ubi->good_peb_count);
> > - err = 9;
> > - goto bad;
> > + if (!ubi->ro_mode) {
> > + err = 9;
> > + goto bad;
> > + }
>
> I fear this is not correct, it will disable a legit self-check of UBI volumes.
> If the read-only volume is corrupted/truncated and you miss PEBs, this
> check will no longer
> trigger.
>
> Especially when dealing with nanddumps, truncation is a common problem.

Any idea how to fix it? Or how to handle read-only images which are
marked for auto-resize?

--
Pali Rohár
pali.rohar@gmail.com