summaryrefslogtreecommitdiffstats
path: root/sys/boot/i386/zfsboot
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2012-04-16 10:43:06 +0000
committeravg <avg@FreeBSD.org>2012-04-16 10:43:06 +0000
commit5f4b7b5e725b0681f4bb4739224ac94c8e1f3913 (patch)
treeb3a0e41ffadfd3f455ad9313f8b26dd5c496a4fd /sys/boot/i386/zfsboot
parent70742a1dd8f3e2645be8e9503f7ab894b29bc816 (diff)
downloadFreeBSD-src-5f4b7b5e725b0681f4bb4739224ac94c8e1f3913.zip
FreeBSD-src-5f4b7b5e725b0681f4bb4739224ac94c8e1f3913.tar.gz
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
Diffstat (limited to 'sys/boot/i386/zfsboot')
-rw-r--r--sys/boot/i386/zfsboot/zfsboot.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/boot/i386/zfsboot/zfsboot.c b/sys/boot/i386/zfsboot/zfsboot.c
index afefc4e..a6be3ee 100644
--- a/sys/boot/i386/zfsboot/zfsboot.c
+++ b/sys/boot/i386/zfsboot/zfsboot.c
@@ -93,6 +93,7 @@ static const char *const dev_nm[NDEV] = {"ad", "da", "fd"};
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;
}
OpenPOWER on IntegriCloud