1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- From eea9e1785e4c05c2a3444506aabafa0ae958538f Mon Sep 17 00:00:00 2001
- From: Daniel Golle <daniel@makrotopia.org>
- Date: Sat, 17 May 2014 03:35:02 +0200
- Subject: [PATCH 4/5] try auto-mounting ubi0:rootfs in init/do_mounts.c
- To: openwrt-devel@lists.openwrt.org
- Signed-off-by: Daniel Golle <daniel@makrotopia.org>
- ---
- init/do_mounts.c | 26 +++++++++++++++++++++++++-
- 1 file changed, 25 insertions(+), 1 deletion(-)
- --- a/init/do_mounts.c
- +++ b/init/do_mounts.c
- @@ -433,7 +433,27 @@ retry:
- out:
- put_page(page);
- }
- -
- +
- +static int __init mount_ubi_rootfs(void)
- +{
- + int flags = MS_SILENT;
- + int err, tried = 0;
- +
- + while (tried < 2) {
- + err = do_mount_root("ubi0:rootfs", "ubifs", flags, \
- + root_mount_data);
- + switch (err) {
- + case -EACCES:
- + flags |= MS_RDONLY;
- + tried++;
- + default:
- + return err;
- + }
- + }
- +
- + return -EINVAL;
- +}
- +
- #ifdef CONFIG_ROOT_NFS
-
- #define NFSROOT_TIMEOUT_MIN 5
- @@ -527,6 +547,10 @@ void __init mount_root(void)
- change_floppy("root floppy");
- }
- #endif
- +#ifdef CONFIG_MTD_ROOTFS_ROOT_DEV
- + if (!mount_ubi_rootfs())
- + return;
- +#endif
- #ifdef CONFIG_BLOCK
- create_dev("/dev/root", ROOT_DEV);
- mount_block_root("/dev/root", root_mountflags);
|