8516d2a8e1
This fixes a performance issue when pc & gpt partmap iterators didn't abort iteration even after our hook found what it was looking for (often causing expensive probes of non-existant drives). Some callers relied on previous buggy behaviour, since they would rise an error when their own hooks caused early abortion of its iteration. * kern/device.c (grub_device_open): Improve error message. * disk/lvm.c (grub_lvm_open): Likewise. * disk/raid.c (grub_raid_open): Likewise. * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration when hook requests it, independently of grub_errno. (pc_partition_map_probe): Do not fail when find_func() caused early abortion of pc_partition_map_iterate(). * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration when hook requests it, independently of grub_errno. (gpt_partition_map_probe): Do not fail when find_func() caused early abortion of gpt_partition_map_iterate(). * kern/partition.c (grub_partition_iterate): Abort parent iteration when hook requests it, independently of grub_errno. Do not fail when part_map_iterate_hook() caused early abortion of p->iterate(). * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail when grub_partition_iterate() returned with non-zero. |
||
---|---|---|
.. | ||
elf | ||
grub.d | ||
i386 | ||
ieee1275 | ||
powerpc/ieee1275 | ||
biosdisk.c | ||
console.c | ||
envblk.c | ||
genmoddep.c | ||
getroot.c | ||
grub-editenv.c | ||
grub-emu.c | ||
grub-fstest.c | ||
grub-mkdevicemap.c | ||
grub-probe.c | ||
hostfs.c | ||
lvm.c | ||
misc.c | ||
raid.c | ||
resolve.c | ||
unifont2pff.rb | ||
update-grub.in | ||
update-grub_lib.in |