[PATCH v5 2/2] io: Use gnulib fts implementation (BZ 22944, BZ 20331)
Collin Funk
collin.funk1@gmail.com
Fri Apr 10 18:43:07 GMT 2026
Florian Weimer <fweimer@redhat.com> writes:
> * Adhemerval Zanella:
>
>> This patch synchronizes the glibc fts implementation with the latest
>> version from gnulib (as of 2026-02-16).
>
> We have received reports that after upgrading glibc, dracut is broken.
>
> Bug 2457183 - 2.43.9000-8 causes a blank screen on boot on snapdragon
> X / aarch64
> <https://bugzilla.redhat.com/show_bug.cgi?id=2457183>
>
> It uses fts:
>
> <https://github.com/dracutdevs/dracut/blob/master/src/install/dracut-install.c>
> I have not had time to investigate this in more detail, sorry.
Likewise I have not investigated it fully.
However, I suspect it might be an issue with this snippet [1]:
{
char *paths[] = { path1, path2, path3, NULL };
fts = fts_open(paths, FTS_COMFOLLOW | FTS_NOCHDIR | FTS_NOSTAT | FTS_LOGICAL, NULL);
}
for (FTSENT *ftsent = fts_read(fts); ftsent != NULL; ftsent = fts_read(fts)) {
_cleanup_kmod_module_unref_list_ struct kmod_list *modlist = NULL;
_cleanup_free_ const char *modname = NULL;
if ((ftsent->fts_info == FTS_D) && !check_module_path(ftsent->fts_accpath)) {
fts_set(fts, ftsent, FTS_SKIP);
log_debug("Skipping %s", ftsent->fts_accpath);
continue;
}
It would be helpful to see if ftsent->fts_info before and after the
change. I suspect it may have been returning FTS_D before and is now
returning FTS_NS now. This would explain why it did not pick up
hv_storvsc from under the scsi subdirectory.
[1] https://github.com/dracutdevs/dracut/blob/5d2bda46f4e75e85445ee4d3bd3f68bf966287b9/src/install/dracut-install.c#L1987-L2000
More information about the Libc-alpha
mailing list