[PATCH 2/2] UBI: Call scan_all() with correct offset in error case
Richard Genoud
richard.genoud at gmail.com
Thu Sep 26 03:22:11 EDT 2013
On 25/09/2013 22:32, Richard Weinberger wrote:
> If we find an invalid fastmap we have to scan from the very beginning.
> Otherwise we leak the first 64 PEBs.
>
> Reported-by: Richard Genoud <richard.genoud at gmail.com>
> Signed-off-by: Richard Weinberger <richard at nod.at>
> ---
> drivers/mtd/ubi/attach.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mtd/ubi/attach.c b/drivers/mtd/ubi/attach.c
> index c071d41..03b32b0 100644
> --- a/drivers/mtd/ubi/attach.c
> +++ b/drivers/mtd/ubi/attach.c
> @@ -1417,9 +1417,11 @@ int ubi_attach(struct ubi_device *ubi, int force_scan)
> ai = alloc_ai("ubi_aeb_slab_cache2");
> if (!ai)
> return -ENOMEM;
> - }
>
> - err = scan_all(ubi, ai, UBI_FM_MAX_START);
> + err = scan_all(ubi, ai, 0);
> + } else {
> + err = scan_all(ubi, ai, UBI_FM_MAX_START);
> + }
> }
> }
> #else
>
Works great, the assert is not triggered anymore.
Tested-by: Richard Genoud <richard.genoud at gmail.com>
More information about the linux-mtd
mailing list