mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-28 11:25:21 +01:00
Revert "loader.efi: Trim ZFS searching for other booting options"
This reverts commit 3e3fd1fde8.
This appears to break chainbooting with boot1.efi and similar scenarios
with Root-on-ZFS scenarios. Revert until it's better understood.
PR: 296309
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D58071
This commit is contained in:
1 parent
1d1298269d
commit
c8842f1d18
1 file changed
+24
-6
+24
-6
@@ -681,21 +681,39 @@ find_currdev(bool do_bootmgr, char *boot_info, size_t boot_info_sz)
|
||||
|
||||
#ifdef EFI_ZFS_BOOT
|
||||
/*
|
||||
* Sixth Choice: With a relaxed policy, try ZFS pools on non-boot
|
||||
* devices after the boot device has been fully exhausted.
|
||||
* Sixth Choice: Probe the boot disk for ZFS and then probe the non-boot
|
||||
* disk if we have a relaxed boot poluicy.
|
||||
*/
|
||||
if (boot_policy == RELAXED) {
|
||||
{
|
||||
zfsinfo_list_t *zfsinfo = efizfs_get_zfsinfo_list();
|
||||
zfsinfo_t *zi;
|
||||
|
||||
/*
|
||||
* Try ZFS pool(s) on the boot device not reachable via
|
||||
* the partition walk above.
|
||||
*/
|
||||
STAILQ_FOREACH(zi, zfsinfo, zi_link) {
|
||||
if (zi->zi_handle == boot_img->DeviceHandle)
|
||||
if (zi->zi_handle != boot_img->DeviceHandle)
|
||||
continue;
|
||||
printf("Trying ZFS pool 0x%jx\n",
|
||||
zi->zi_pool_guid);
|
||||
printf("Trying ZFS pool 0x%jx\n", zi->zi_pool_guid);
|
||||
if (probe_zfs_currdev(zi->zi_pool_guid))
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* With a relaxed policy, try pools on other devices only
|
||||
* after the boot device has no bootable root.
|
||||
*/
|
||||
if (boot_policy == RELAXED) {
|
||||
STAILQ_FOREACH(zi, zfsinfo, zi_link) {
|
||||
if (zi->zi_handle == boot_img->DeviceHandle)
|
||||
continue;
|
||||
printf("Trying ZFS pool 0x%jx\n",
|
||||
zi->zi_pool_guid);
|
||||
if (probe_zfs_currdev(zi->zi_pool_guid))
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* EFI_ZFS_BOOT */
|
||||
|
||||
|
||||
Reference in new issue
Block a user