diff options
author | allanjude <allanjude@FreeBSD.org> | 2016-01-09 19:13:25 +0000 |
---|---|---|
committer | allanjude <allanjude@FreeBSD.org> | 2016-01-09 19:13:25 +0000 |
commit | f7b2f01ed012f7d71bc2a622981864be45556e68 (patch) | |
tree | b99233d8676551c5aef28926d711d01438085a7f /sys/boot/i386 | |
parent | 897564533576b25591692b883bafd1f06b826bda (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/boot/i386/loader/main.c | 6 |
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, |