Refine iteration to prioritize returning system disk devices over memdisk and procfs. This adjustment brings about a modest improvement in search efficiency, particularly during file or UUID-based searches for a root file system. Additionally, it helps mitigate potential collisions in file-based searches where memdisk may mistakenly take precedence over system disks.
Signed-off-by: Michael Chang <mch...@suse.com> --- include/grub/disk.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/grub/disk.h b/include/grub/disk.h index fbf23df7f..b3e4f1c8b 100644 --- a/include/grub/disk.h +++ b/include/grub/disk.h @@ -242,7 +242,12 @@ grub_disk_dev_iterate (grub_disk_dev_iterate_hook_t hook, void *hook_data) for (pull = 0; pull < GRUB_DISK_PULL_MAX; pull++) for (p = grub_disk_dev_list; p; p = p->next) - if (p->disk_iterate && (p->disk_iterate) (hook, hook_data, pull)) + if ((p->id != GRUB_DISK_DEVICE_MEMDISK_ID && p->id != GRUB_DISK_DEVICE_PROCFS_ID) && p->disk_iterate && (p->disk_iterate) (hook, hook_data, pull)) + return 1; + + for (pull = 0; pull < GRUB_DISK_PULL_MAX; pull++) + for (p = grub_disk_dev_list; p; p = p->next) + if ((p->id == GRUB_DISK_DEVICE_MEMDISK_ID || p->id == GRUB_DISK_DEVICE_PROCFS_ID) && p->disk_iterate && (p->disk_iterate) (hook, hook_data, pull)) return 1; return 0; -- 2.44.0 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel