kernel: rootfs auto-mount on ubi
[openwrt.git] / target / linux / generic / patches-3.14 / 493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
diff --git a/target/linux/generic/patches-3.14/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch b/target/linux/generic/patches-3.14/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
new file mode 100644 (file)
index 0000000..4ceedf3
--- /dev/null
@@ -0,0 +1,42 @@
+From cd68d1b12b5ea4c01a664c064179ada42bf55d3d Mon Sep 17 00:00:00 2001
+From: Daniel Golle <daniel@makrotopia.org>
+Date: Thu, 15 May 2014 20:55:42 +0200
+Subject: [PATCH 5/5] ubi: set ROOT_DEV to ubiblock "rootfs" if unset
+To: openwrt-devel@lists.openwrt.org
+
+Signed-off-by: Daniel Golle <daniel@makrotopia.org>
+---
+ drivers/mtd/ubi/block.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
+index 2dbe2f4..eaa29f8 100644
+--- a/drivers/mtd/ubi/block.c
++++ b/drivers/mtd/ubi/block.c
+@@ -48,6 +48,7 @@
+ #include <linux/blkdev.h>
+ #include <linux/hdreg.h>
+ #include <asm/div64.h>
++#include <linux/root_dev.h>
+ #include "ubi-media.h"
+ #include "ubi.h"
+@@ -444,6 +445,15 @@ int ubiblock_create(struct ubi_volume_info *vi)
+       add_disk(dev->gd);
+       ubi_msg("%s created from ubi%d:%d(%s)",
+               dev->gd->disk_name, dev->ubi_num, dev->vol_id, vi->name);
++
++      if (!strcmp(vi->name, "rootfs") &&
++          config_enabled(CONFIG_MTD_ROOTFS_ROOT_DEV) &&
++          ROOT_DEV == 0) {
++              pr_notice("ubiblock: device ubiblock%d_%d (%s) set to be root filesystem\n",
++                        dev->ubi_num, dev->vol_id, vi->name);
++              ROOT_DEV = MKDEV(gd->major, gd->first_minor);
++      }
++
+       return 0;
+ out_free_queue:
+-- 
+1.9.2
+