Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Aug 2011 23:19:06 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Marcel Moolenaar <marcel@xcllnt.net>
Cc:        Marcel Moolenaar <marcel@FreeBSD.org>, FreeBSD-Current <freebsd-current@FreeBSD.org>
Subject:   Re: possible mountroot regression
Message-ID:  <4E5BF43A.5050306@FreeBSD.org>
In-Reply-To: <E2FDBF46-8DA6-4D13-B5B5-7EB22C220F9D@xcllnt.net>
References:  <4E580B14.7090208@FreeBSD.org> <1A828073-1D5F-4850-9379-4AB62CF3DAE3@xcllnt.net> <4E5B4BFB.9040907@FreeBSD.org> <E2FDBF46-8DA6-4D13-B5B5-7EB22C220F9D@xcllnt.net>

next in thread | previous in thread | raw e-mail | index | archive | help
on 29/08/2011 19:45 Marcel Moolenaar said the following:
> 
> On Aug 29, 2011, at 1:21 AM, Andriy Gapon wrote:
> 
>> on 27/08/2011 18:16 Marcel Moolenaar said the following:
>>>
>>> On Aug 26, 2011, at 2:07 PM, Andriy Gapon wrote:
>>>
>>>>
>>>> It seems that after the introduction of the mountroot scripting language a user
>>>> now has exactly one chance to try to specify a correct root device at the
>>>> mountroot prompt.  I am not sure that that is convenient/enough.
>>>
>>> This is no different from before.
>>
>> Are you sure?
>> I remember trying multiple (incorrect) possibilities at the prompt and not
>> getting the panic.  But I know that sometimes I have cases of "false memories",
>> so _I_ am not sure.
> 
> I'm sure now that we're both not sure :-)
> 
> It's possible the failure mode varied by how the root mount
> failed...


Judging from the code before r214006 it shouldn't have panic-ed upon such a failure:
static int
vfs_mountroot_ask(void)
{
        char name[128];
        char *mountfrom;
        char *options;

        for(;;) {
...
                gets(name, sizeof(name), 1);
                if (name[0] == '\0')
                        return (1);
                if (name[0] == '?') {
                        printf("\nList of GEOM managed disk devices:\n  ");
                        g_dev_print();
                        continue;
                }
                if (!vfs_mountroot_try(name, NULL))
                        return (0);
        }
}


So this "endless" loop was exited only if vfs_mountroot_try() returned success
(error == 0) or if a user entered an empty string.

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E5BF43A.5050306>