Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Oct 2011 11:58:47 -0400
From:      Arnaud Lacombe <lacombar@gmail.com>
To:        avg@freebsd.org
Cc:        FreeBSD Current <freebsd-current@freebsd.org>, Arnaud Lacombe <lacombar@gmail.com>
Subject:   Re: possible mountroot regression
Message-ID:  <CACqU3MVgDH9URcuPaGOYLVV9xw5TgRsWLaa%2BS7OwpL4B3pwJTw@mail.gmail.com>
In-Reply-To: <1318607697-31950-1-git-send-email-lacombar@gmail.com>
References:  <4E984BF9.4000700@FreeBSD.org> <1318607697-31950-1-git-send-email-lacombar@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

On Fri, Oct 14, 2011 at 11:54 AM, Arnaud Lacombe <lacombar@gmail.com> wrote=
:
> Andry Gapon wrote:
>> Simple: revert to the previous behavior. =A0If a user enters incorrect d=
evice name
>>(i.e. root mounting fails), then return back to the prompt instead of pan=
icing.
> That should do the job.
>
Actually, my primary interest in that patch was to be able to hit
<enter> to be sure I had the prompt (think a serial console connecting
after the message has been displayed), then enter the information. Not
sure that'd suit what you expect though.

 - Arnaud

> =A0- Arnaud
>
> ---
> =A0sys/kern/vfs_mountroot.c | =A0 45 +++++++++++++++++++++++-------------=
---------
> =A01 files changed, 23 insertions(+), 22 deletions(-)
>
> diff --git a/sys/kern/vfs_mountroot.c b/sys/kern/vfs_mountroot.c
> index ccbcb33..ae3ffa7 100644
> --- a/sys/kern/vfs_mountroot.c
> +++ b/sys/kern/vfs_mountroot.c
> @@ -481,28 +481,29 @@ parse_dir_ask(char **conf)
> =A0 =A0 =A0 =A0printf("\n");
> =A0 =A0 =A0 =A0printf(" =A0? =A0 =A0 =A0 =A0 =A0 =A0 =A0 List valid disk =
boot devices\n");
> =A0 =A0 =A0 =A0printf(" =A0. =A0 =A0 =A0 =A0 =A0 =A0 =A0 Yield 1 second (=
for background tasks)\n");
> - =A0 =A0 =A0 printf(" =A0<empty line> =A0 =A0Abort manual input\n");
> + =A0 =A0 =A0 printf(" =A0x =A0 =A0 =A0 =A0 =A0 =A0 =A0 Abort manual inpu=
t)\n");
> +
> + =A0 =A0 =A0 do {
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D EINVAL;
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 printf("\nmountroot> ");
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 gets(name, sizeof(name), GETS_ECHO);
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (name[0] =3D=3D '?') {
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 printf("\nList of GEOM mana=
ged disk devices:\n =A0");
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 g_dev_print();
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 continue;
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 }
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (name[0] =3D=3D '.') {
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 pause("rmask", hz);
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 continue;
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 }
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (name[0] =3D=3D 'x' && name[1] =3D=3D '\=
0')
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 break;
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 mnt =3D name;
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D parse_mount(&mnt);
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (error < 0)
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 printf("Invalid specificati=
on.\n");
> + =A0 =A0 =A0 } while (error !=3D 0);
>
> - again:
> - =A0 =A0 =A0 printf("\nmountroot> ");
> - =A0 =A0 =A0 gets(name, sizeof(name), GETS_ECHO);
> - =A0 =A0 =A0 if (name[0] =3D=3D '\0')
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 return (0);
> - =A0 =A0 =A0 if (name[0] =3D=3D '?') {
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 printf("\nList of GEOM managed disk devices=
:\n =A0");
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 g_dev_print();
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 goto again;
> - =A0 =A0 =A0 }
> - =A0 =A0 =A0 if (name[0] =3D=3D '.') {
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pause("rmask", hz);
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 goto again;
> - =A0 =A0 =A0 }
> - =A0 =A0 =A0 mnt =3D name;
> - =A0 =A0 =A0 error =3D parse_mount(&mnt);
> - =A0 =A0 =A0 if (error =3D=3D -1) {
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 printf("Invalid specification.\n");
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 goto again;
> - =A0 =A0 =A0 }
> =A0 =A0 =A0 =A0return (error);
> =A0}
>
> --
> 1.7.6.153.g78432
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACqU3MVgDH9URcuPaGOYLVV9xw5TgRsWLaa%2BS7OwpL4B3pwJTw>