From owner-svn-src-head@FreeBSD.ORG Sun Oct 23 20:03:33 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB6771065673; Sun, 23 Oct 2011 20:03:33 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AB3568FC08; Sun, 23 Oct 2011 20:03:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9NK3XYR054478; Sun, 23 Oct 2011 20:03:33 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9NK3XaV054476; Sun, 23 Oct 2011 20:03:33 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201110232003.p9NK3XaV054476@svn.freebsd.org> From: Marcel Moolenaar Date: Sun, 23 Oct 2011 20:03:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226673 - head/sys/kern X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Oct 2011 20:03:33 -0000 Author: marcel Date: Sun Oct 23 20:03:33 2011 New Revision: 226673 URL: http://svn.freebsd.org/changeset/base/226673 Log: Don't terminate the interactive root mount prompt on mount failure. This restores the previous behaviour. While here, match '?' and '.' inputs exactly and improve the error message. Requested by: avg@ Derived from a patch by: Arnaud Lacombe Modified: head/sys/kern/vfs_mountroot.c Modified: head/sys/kern/vfs_mountroot.c ============================================================================== --- head/sys/kern/vfs_mountroot.c Sun Oct 23 19:46:01 2011 (r226672) +++ head/sys/kern/vfs_mountroot.c Sun Oct 23 20:03:33 2011 (r226673) @@ -483,26 +483,27 @@ parse_dir_ask(char **conf) printf(" . Yield 1 second (for background tasks)\n"); printf(" Abort manual input\n"); - 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; - } + do { + error = EINVAL; + printf("\nmountroot> "); + gets(name, sizeof(name), GETS_ECHO); + if (name[0] == '\0') + break; + if (name[0] == '?' && name[1] == '\0') { + printf("\nList of GEOM managed disk devices:\n "); + g_dev_print(); + continue; + } + if (name[0] == '.' && name[1] == '\0') { + pause("rmask", hz); + continue; + } + mnt = name; + error = parse_mount(&mnt); + if (error == -1) + printf("Invalid file system specification.\n"); + } while (error != 0); + return (error); }