From owner-freebsd-current@FreeBSD.ORG Tue Oct 18 16:04:35 2011 Return-Path: Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ABD77106564A; Tue, 18 Oct 2011 16:04:35 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id C27988FC17; Tue, 18 Oct 2011 16:04:34 +0000 (UTC) Received: from odyssey.starpoint.kiev.ua (alpha-e.starpoint.kiev.ua [212.40.38.101]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id TAA05981; Tue, 18 Oct 2011 19:04:32 +0300 (EEST) (envelope-from avg@FreeBSD.org) Message-ID: <4E9DA38F.1040305@FreeBSD.org> Date: Tue, 18 Oct 2011 19:04:31 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:7.0.1) Gecko/20111003 Thunderbird/7.0.1 MIME-Version: 1.0 To: Arnaud Lacombe , Marcel Moolenaar References: <4E984BF9.4000700@FreeBSD.org> <1318607697-31950-1-git-send-email-lacombar@gmail.com> In-Reply-To: <1318607697-31950-1-git-send-email-lacombar@gmail.com> X-Enigmail-Version: undefined Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: FreeBSD Current Subject: Re: possible mountroot regression X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Oct 2011 16:04:35 -0000 on 14/10/2011 18:54 Arnaud Lacombe said the following: > Andry Gapon wrote: >> Simple: revert to the previous behavior. If a user enters incorrect device name >> (i.e. root mounting fails), then return back to the prompt instead of panicing. > That should do the job. > > - Arnaud > > --- > sys/kern/vfs_mountroot.c | 45 +++++++++++++++++++++++---------------------- > 1 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) > printf("\n"); > printf(" ? List valid disk boot devices\n"); > printf(" . Yield 1 second (for background tasks)\n"); > - printf(" Abort manual input\n"); > + printf(" x Abort manual input)\n"); > + > + do { > + error = EINVAL; > + printf("\nmountroot> "); > + gets(name, sizeof(name), GETS_ECHO); > + if (name[0] == '?') { > + printf("\nList of GEOM managed disk devices:\n "); > + g_dev_print(); > + continue; > + } > + if (name[0] == '.') { > + pause("rmask", hz); > + continue; > + } > + if (name[0] == 'x' && name[1] == '\0') > + break; > + mnt = name; > + error = parse_mount(&mnt); > + if (error < 0) > + printf("Invalid specification.\n"); > + } while (error != 0); > > - again: > - printf("\nmountroot> "); > - gets(name, sizeof(name), GETS_ECHO); > - if (name[0] == '\0') > - return (0); > - if (name[0] == '?') { > - printf("\nList of GEOM managed disk devices:\n "); > - g_dev_print(); > - goto again; > - } > - if (name[0] == '.') { > - pause("rmask", hz); > - goto again; > - } > - mnt = name; > - error = parse_mount(&mnt); > - if (error == -1) { > - printf("Invalid specification.\n"); > - goto again; > - } > return (error); > } > Arnaud, I like how your change fixes the regression and improves code style. As you've said, the 'x' change is unrelated. I like it, but it needs to be discussed and committed separately. Marcel, what do you think? Would you be able to commit a variant of this patch sans the 'x' part? -- Andriy Gapon