kernel: mtdsplit_squashfs: Align with the erase-block size
authorFelix Fietkau <nbd@openwrt.org>
Sun, 17 Jan 2016 10:41:30 +0000 (10:41 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 17 Jan 2016 10:41:30 +0000 (10:41 +0000)
On most image types the rootfs ends at an erase-block. However, at least
with brnImages this is not the case: while the partitions are aligned
with the erase-block size there is a 12 byte footer at the end of the
partition which must not be touched by any filesystem. This lead to a
rootfs_data partition which was not aligned properly (and thus ended up
being readonly):
0x000000480000-0x00000085a800 : "rootfs_data" (128 KiB EB)

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
SVN-Revision: 48263

target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_squashfs.c

index 3d80e078b5f5f1bdf4e181008e6799157ff62f09..5329037f0957e57fdd3b0ee83b4530099dbf18d5 100644 (file)
@@ -49,7 +49,7 @@ mtdsplit_parse_squashfs(struct mtd_info *master,
        part->name = ROOTFS_SPLIT_NAME;
        part->offset = mtd_roundup_to_eb(part_offset + squashfs_len,
                                         parent_mtd) - part_offset;
-       part->size = master->size - part->offset;
+       part->size = mtd_rounddown_to_eb(master->size - part->offset, master);
 
        *pparts = part;
        return 1;