int __initdata rd_doload; /* 1 = load RAM disk, 0 = don't load */
-int root_mountflags = MS_RDONLY | MS_VERBOSE;
+int root_mountflags = MS_RDONLY | MS_SILENT;
char * __initdata root_device_name;
static char __initdata saved_root_name[64];
-/* this is initialized in init/main.c */
dev_t ROOT_DEV;
static int __init load_ramdisk(char *str)
char *fs_names = __getname();
char *p;
char b[BDEVNAME_SIZE];
+ int i = 0;
get_fs_names(fs_names);
retry:
case -EINVAL:
continue;
}
+
+ printk("VFS: No root yet, retrying to mount root on %s (%s)\n",
+ root_device_name, __bdevname(ROOT_DEV, b));
+ current->state = TASK_INTERRUPTIBLE;
+ schedule_timeout(10 * HZ);
+ if (i++ < 5)
+ goto retry;
+
/*
* Allow the user to distinguish between failed sys_open
* and bad superblock on root device.
panic("VFS: Unable to mount root fs on %s", b);
}
+
+ printk("No filesystem could mount root, tried: ");
+ for (p = fs_names; *p; p += strlen(p)+1)
+ printk(" %s", p);
+ printk("\n");
panic("VFS: Unable to mount root fs on %s", __bdevname(ROOT_DEV, b));
out:
putname(fs_names);