1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- From: Daniel Golle <[email protected]>
- Subject: try auto-mounting ubi0:rootfs in init/do_mounts.c
- Signed-off-by: Daniel Golle <[email protected]>
- ---
- init/do_mounts.c | 26 +++++++++++++++++++++++++-
- 1 file changed, 25 insertions(+), 1 deletion(-)
- --- a/init/do_mounts.c
- +++ b/init/do_mounts.c
- @@ -446,7 +446,30 @@ retry:
- out:
- put_page(page);
- }
- -
- +
- +#ifdef CONFIG_MTD_ROOTFS_ROOT_DEV
- +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++;
- + break;
- + default:
- + return err;
- + }
- + }
- +
- + return -EINVAL;
- +}
- +#endif
- +
- #ifdef CONFIG_ROOT_NFS
-
- #define NFSROOT_TIMEOUT_MIN 5
- @@ -579,6 +602,10 @@ void __init mount_root(void)
- return;
- }
- #endif
- +#ifdef CONFIG_MTD_ROOTFS_ROOT_DEV
- + if (!mount_ubi_rootfs())
- + return;
- +#endif
- if (ROOT_DEV == 0 && root_device_name && root_fs_names) {
- if (mount_nodev_root() == 0)
- return;
|