summaryrefslogtreecommitdiffstats
path: root/sys/boot/i386/loader
diff options
context:
space:
mode:
authorallanjude <allanjude@FreeBSD.org>2016-01-09 19:13:25 +0000
committerallanjude <allanjude@FreeBSD.org>2016-01-09 19:13:25 +0000
commitf7b2f01ed012f7d71bc2a622981864be45556e68 (patch)
treeb99233d8676551c5aef28926d711d01438085a7f /sys/boot/i386/loader
parent897564533576b25591692b883bafd1f06b826bda (diff)
downloadFreeBSD-src-f7b2f01ed012f7d71bc2a622981864be45556e68.zip
FreeBSD-src-f7b2f01ed012f7d71bc2a622981864be45556e68.tar.gz
Return call to init_zfs_bootenv to its previous location
When called to early, new_currdev->d_type was not yet set zfs_fmtdev() would then return null While here, guard call to init_zfs_bootenv with if d_type == DEVT_ZFS Reported by: tsoome at me.com MFC after: 3 days Sponsored by: ScaleEngine Inc.
Diffstat (limited to 'sys/boot/i386/loader')
-rw-r--r--sys/boot/i386/loader/main.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/boot/i386/loader/main.c b/sys/boot/i386/loader/main.c
index 2b30b92..644747e 100644
--- a/sys/boot/i386/loader/main.c
+++ b/sys/boot/i386/loader/main.c
@@ -262,7 +262,6 @@ extract_currdev(void)
new_currdev.d_kind.zfs.root_guid = 0;
}
new_currdev.d_dev = &zfs_dev;
- init_zfs_bootenv(zfs_fmtdev(&new_currdev));
#endif
} else if ((initial_bootdev & B_MAGICMASK) != B_DEVMAGIC) {
/* The passed-in boot device is bad */
@@ -296,6 +295,11 @@ extract_currdev(void)
new_currdev.d_unit = 0;
}
+#ifdef LOADER_ZFS_SUPPORT
+ if (new_currdev.d_type == DEVT_ZFS)
+ init_zfs_bootenv(zfs_fmtdev(&new_currdev));
+#endif
+
env_setenv("currdev", EV_VOLATILE, i386_fmtdev(&new_currdev),
i386_setcurrdev, env_nounset);
env_setenv("loaddev", EV_VOLATILE, i386_fmtdev(&new_currdev), env_noset,
OpenPOWER on IntegriCloud