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

Richard Weinberger
2017-07-21T20:12:55Z

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.

--
Thanks,
//richard