123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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
- @@ -248,7 +248,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
- @@ -385,6 +408,11 @@ static inline void mount_block_root(char
-
- void __init mount_root(char *root_device_name)
- {
- +#ifdef CONFIG_MTD_ROOTFS_ROOT_DEV
- + if (!mount_ubi_rootfs())
- + return;
- +#endif
- +
- switch (ROOT_DEV) {
- case Root_NFS:
- mount_nfs_root();
|