Re: rootfs on USB storage device

Pete Zaitcev
2001-11-16T17:31:28Z

> Date: Fri, 16 Nov 2001 14:21:04 +0100 (CET)
> From: Eric Lammerts <eric@lammerts.org>
> To: Pete Zaitcev <zaitcev@redhat.com>
> cc: josn@josn.myip.org, Greg KH <greg@kroah.com>,
> <linux-kernel@vger.kernel.org>

> > I think khubd needs to run to complete whole process and mdelay()
> > locks it out. You need something that calls schedule() for USB
> > detection to work. Try to use schedule_timeout() instead of mdelay().
>
> This patch works for me.

Looks like a well done patch but what does happen if root= was
indeed incorrect? I wish there was a way to print something
meaningful for the operator.

-- Pete

P.S. - quoting the patch, saved for future reference
> --- linux-2.4.14-pre8-ext3/fs/super.c.orig Fri Nov 16 00:59:18 2001
> +++ linux-2.4.14-pre8-ext3/fs/super.c Fri Nov 16 01:07:26 2001
> @@ -1009,11 +1009,13 @@
> * Allow the user to distinguish between failed open
> * and bad superblock on root device.
> */
> - printk ("VFS: Cannot open root device \"%s\" or %s\n",
> + printk ("VFS: Cannot open root device \"%s\" or %s, retrying in 1s.\n",
> root_device_name, kdevname (ROOT_DEV));
> - printk ("Please append a correct \"root=\" boot option\n");
> - panic("VFS: Unable to mount root fs on %s",
> - kdevname(ROOT_DEV));
> +
> + /* wait 1 second and try again */
> + current->state = TASK_INTERRUPTIBLE;
> + schedule_timeout(HZ);
> + goto retry;
> }
>
> check_disk_change(ROOT_DEV);