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

Richard Weinberger richard.weinberger at gmail.com
Fri Jul 21 13:12:51 PDT 2017


Pali,

On Fri, Jun 2, 2017 at 5:43 PM, Pali Rohár <pali.rohar at 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 at 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



More information about the linux-mtd mailing list