kernel: support "linux,rootfs" DT property for splitting rootfs
authorRafał Miłecki <rafal@milecki.pl>
Tue, 8 Nov 2022 11:22:51 +0000 (12:22 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Mon, 21 Nov 2022 16:21:13 +0000 (17:21 +0100)
OpenWrt's support for splitting rootfs (to create an extra "rootfs_data"
partition) is limited to partitions called "rootfs". Upstream kernel
allows any name partition to be rootfs if it has "linux,rootfs" property
set. Add split support to such partitions in OpenWrt code.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit e4770db163a9585c43bb70dc5d6d1e45ef848e4a)

target/linux/generic/pending-5.10/400-mtd-mtdsplit-support.patch

index ce4743879d9c8b0e6cedf600dafc59c1da9b5eb0..35b6944805db9963951e2358300f93ecb7ff2297 100644 (file)
@@ -42,7 +42,7 @@
  
  /*
   * MTD methods which simply translate the effective address and pass through
-@@ -237,6 +239,146 @@ static int mtd_add_partition_attrs(struc
+@@ -237,6 +239,147 @@ static int mtd_add_partition_attrs(struc
        return ret;
  }
  
 +      if (rootfs_found)
 +              return;
 +
-+      if (!strcmp(part->name, "rootfs")) {
++      if (of_find_property(mtd_get_of_node(part), "linux,rootfs", NULL) ||
++          !strcmp(part->name, "rootfs")) {
 +              run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS);
 +
 +              rootfs_found = 1;
  int mtd_add_partition(struct mtd_info *parent, const char *name,
                      long long offset, long long length)
  {
-@@ -275,6 +417,7 @@ int mtd_add_partition(struct mtd_info *p
+@@ -275,6 +418,7 @@ int mtd_add_partition(struct mtd_info *p
        if (ret)
                goto err_remove_part;
  
        mtd_add_partition_attrs(child);
  
        return 0;
-@@ -423,6 +566,7 @@ int add_mtd_partitions(struct mtd_info *
+@@ -423,6 +567,7 @@ int add_mtd_partitions(struct mtd_info *
                        goto err_del_partitions;
                }
  
                mtd_add_partition_attrs(child);
  
                /* Look for subpartitions */
-@@ -439,31 +583,6 @@ err_del_partitions:
+@@ -439,31 +584,6 @@ err_del_partitions:
        return ret;
  }