kernel: move mtdsplit files to drivers/mtd/mtdsplit/ to simplify maintenance, unify...
[openwrt.git] / target / linux / generic / patches-3.10 / 404-mtd-use-mtd_get_squashfs_len-in-split_squasfh.patch
1 --- a/drivers/mtd/mtdpart.c
2 +++ b/drivers/mtd/mtdpart.c
3 @@ -669,43 +669,16 @@ mtd_pad_erasesize(struct mtd_info *mtd, 
4         return len;
5  }
6  
7 -#define ROOTFS_SPLIT_NAME "rootfs_data"
8 -
9 -struct squashfs_super_block {
10 -       __le32 s_magic;
11 -       __le32 pad0[9];
12 -       __le64 bytes_used;
13 -};
14 -
15 -
16  static int split_squashfs(struct mtd_info *master, int offset, int *split_offset)
17  {
18 -       struct squashfs_super_block sb;
19 +       size_t squashfs_len;
20         int len, ret;
21  
22 -       ret = mtd_read(master, offset, sizeof(sb), &len, (void *) &sb);
23 -       if (ret || (len != sizeof(sb))) {
24 -               printk(KERN_ALERT "split_squashfs: error occured while reading "
25 -                       "from \"%s\"\n", master->name);
26 -               return -EINVAL;
27 -       }
28 -
29 -       if (SQUASHFS_MAGIC != le32_to_cpu(sb.s_magic) ) {
30 -               printk(KERN_ALERT "split_squashfs: no squashfs found in \"%s\"\n",
31 -                       master->name);
32 -               *split_offset = 0;
33 -               return 0;
34 -       }
35 -
36 -       if (le64_to_cpu((sb.bytes_used)) <= 0) {
37 -               printk(KERN_ALERT "split_squashfs: squashfs is empty in \"%s\"\n",
38 -                       master->name);
39 -               *split_offset = 0;
40 -               return 0;
41 -       }
42 +       ret = mtd_get_squashfs_len(master, offset, &squashfs_len);
43 +       if (ret)
44 +               return ret;
45  
46 -       len = (u32) le64_to_cpu(sb.bytes_used);
47 -       len = mtd_pad_erasesize(master, offset, len);
48 +       len = mtd_pad_erasesize(master, offset, squashfs_len);
49         *split_offset = offset + len;
50  
51         return 0;
52 --- a/drivers/mtd/Kconfig
53 +++ b/drivers/mtd/Kconfig
54 @@ -20,6 +20,7 @@ config MTD_ROOTFS_ROOT_DEV
55  
56  config MTD_ROOTFS_SPLIT
57         bool "Automatically split 'rootfs' partition for squashfs"
58 +       select MTD_SPLIT
59         default y
60  
61  config MTD_SPLIT_FIRMWARE