svn commit: r234339 - head/sys/boot/i386/zfsboot

Andriy Gapon avg at FreeBSD.org
Mon Apr 16 10:43:07 UTC 2012


Author: avg
Date: Mon Apr 16 10:43:06 2012
New Revision: 234339
URL: http://svn.freebsd.org/changeset/base/234339

Log:
  zfsboot: honor -q if it's present in boot.config
  
  Before r228267 the option was honored but the original content of
  boot.config was not preserved.  I tried to fix that but missed the idea.
  Now the proper way of doing things is taken from i386/boo2.
  Also, a comment is added to explain this a little bit unobvious
  behavior.
  
  Inspired by:	jhb
  MFC after:	5 days

Modified:
  head/sys/boot/i386/zfsboot/zfsboot.c

Modified: head/sys/boot/i386/zfsboot/zfsboot.c
==============================================================================
--- head/sys/boot/i386/zfsboot/zfsboot.c	Mon Apr 16 10:33:46 2012	(r234338)
+++ head/sys/boot/i386/zfsboot/zfsboot.c	Mon Apr 16 10:43:06 2012	(r234339)
@@ -93,6 +93,7 @@ static const char *const dev_nm[NDEV] = 
 static const unsigned char dev_maj[NDEV] = {30, 4, 2};
 
 static char cmd[512];
+static char cmddup[512];
 static char kname[1024];
 static int comspeed = SIOSPD;
 static struct bootinfo bootinfo;
@@ -541,10 +542,15 @@ main(void)
     }
 
     if (*cmd) {
-	if (!OPT_CHECK(RBX_QUIET))
-	    printf("%s: %s", PATH_CONFIG, cmd);
+	/*
+	 * Note that parse() is destructive to cmd[] and we also want
+	 * to honor RBX_QUIET option that could be present in cmd[].
+	 */
+	memcpy(cmddup, cmd, sizeof(cmd));
 	if (parse())
 	    autoboot = 0;
+	if (!OPT_CHECK(RBX_QUIET))
+	    printf("%s: %s", PATH_CONFIG, cmddup);
 	/* Do not process this command twice */
 	*cmd = 0;
     }


More information about the svn-src-all mailing list