UBI: init_volumes: Ignore volumes with no LEBs
authorRichard Weinberger <richard@nod.at>
Tue, 8 Jul 2014 14:04:44 +0000 (16:04 +0200)
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Sat, 19 Jul 2014 06:53:52 +0000 (09:53 +0300)
UBI assumes that ubi_attach_info will only contain ubi_ainf_volume
structures for volumes with at least one LEB.
In scanning mode this is true because UBI can nicely create a ubi_ainf_volume
on demand while creating the EBA table.

For fastmap this is not true, the fastmap on-flash structure has a list of
all volumes, the ubi_ainf_volume structures are created from this list.
So it can happen that an empty volume ends up in init_volumes().

We can easely deal with that by looking into ->leb_count too.

Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
drivers/mtd/ubi/vtbl.c

index d77b1c1d7c7267c3186635497eeba492f539d735..07cac5f9ffb801f4d3acc8c2c5638d9617638097 100644 (file)
@@ -591,7 +591,7 @@ static int init_volumes(struct ubi_device *ubi,
 
                /* Static volumes only */
                av = ubi_find_av(ai, i);
-               if (!av) {
+               if (!av || !av->leb_count) {
                        /*
                         * No eraseblocks belonging to this volume found. We
                         * don't actually know whether this static volume is