[arch-projects] [mkinitcpio][PATCH] autodetect: resolve guessed filesystem modules
Trading out modinfo for modprobe allows us to detect filesystems like ext2 and ext3 which might be aliased to ext4 in the case of Kconfig CONFIG_EXT4_USE_FOR_EXT23 being enabled. Maybe this catches other insane corner cases, too. Since we now treat this as possible aliases, we also need to be mindful of the fact that it could resolve to multiple modules. Treat the output as an array to be mindful of this. Fixes FS#28569. Signed-off-by: Dave Reisner <dreisner@archlinux.org> --- Unless there's any objections, I'll be backporting this to the current 0.8.2 package and rolling it out into testing (hopefully quickly to core) to avoid bug reports like the one I've mentioned. install/autodetect | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/install/autodetect b/install/autodetect index 5cc908c..f9a8a7d 100644 --- a/install/autodetect +++ b/install/autodetect @@ -7,8 +7,14 @@ build() { MODULE_FILE=$workdir/autodetect_modules add_if_avail() { - if modinfo -k "$KERNELVERSION" "$1" &>/dev/null; then - printf '%s\n' "$1" >>"$MODULE_FILE" + local resolved + + # Treat this as an alias, since ext3 might be ext4. + IFS=$'\n' read -rd '' -a resolved < \ + <(modprobe -S "$KERNELVERSION" -R "$1" 2>/dev/null) + + if (( ${#resolved[*]} )); then + printf '%s\n' "${resolved[@]}" >>"$MODULE_FILE" fi } -- 1.7.9.1
participants (1)
-
Dave Reisner