Paulo Marques <pmarques@xxxxxxxxxxxx> writes:
David N. Welton wrote:
Works like so: whenever a block device comes on line, itI find this to be very useful. I always found the "sleep for a while
signals this fact to a wait queue, so that the init
process can stop and wait for slow devices, in particular
things such as USB storage devices, which are much slower
than IDE devices. The init process checks the list of
available devices and compares it with the desired root
device, and if there is a match, proceeds with the
initialization process, secure in the knowledge that the
device in question has been brought up. This is useful if
one wants to boot quickly from a USB storage device
without a trimmed-down kernel, and without going through
the whole initrd slog.
until the device we want appears" approach very cumbersome.
Glad to hear someone likes it.
However, after looking at your patch, it seems that having a
get_blkdevs() function that alloc's an array of strings, and return
it to a function that only compares the strings against the name it
is looking for and drops the array altogether, is a little overkill.
Why not have a simple blkdev_exists(char *name) function in genhd.c,
call it directly, and drop the match_root_name() function
completely?
Sure, that's probably better. Maybe "blkdev_is_online"? I'll see if
I can do it tommorow.
I'm also a bit dubious of having the wait queue floating around as a
global, but don't know the kernel well enough to find it a better
home.