openwrtv4/target/linux/generic/patches-3.14/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
John Crispin acbcd5f5b5 kernel: rootfs auto-mount on ubi
Similar to the rootfs hacks on NOR flash devices, this series
introduces support for auto-attaching (ubi device), auto-creating
(ubiblock device) and mounting the "rootfs" (ubifs or squashfs)
volume.
This is needed so OpenWrt can start without relying on the bootloader
to pass the ubi.mtd, ubi.block, rootfs and rootfstype parameters, but
instead auto-detect the root filesystem according to a simple convention.

OpenWrt-specific:
490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
491-ubi-auto-create-ubiblock-device-for-rootfs.patch
492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch

sent upstream:
552-ubifs-respect-silent-mount-flag.patch
http://lists.infradead.org/pipermail/linux-mtd/2014-May/053893.html

v2: actually retry with MS_RDONLY when mounting read-only ubifs root

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 41119
2014-06-11 12:59:10 +00:00

42 lines
1.2 KiB
Diff

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