Возвращаемое значение было удалено из debugfs_create_u32
в 2b07021a940ce1cdec736ec0cacad6af77717afc , которое вошло в версию 5.7:
debugfs: remove return value of debugfs_create_u32() No one checks the return value of debugfs_create_u32(), as it's not needed, so make the return value void, so that no one tries to do so in the future.
так что вы можете просто избавиться от этого if
.
Проблема для меня в том, что я хотел удалить файл debugfs после выгрузки модуля, а моя запись была на верхнем уровне debugfs с NULL, поэтому я не могу просто debugfs_remove_recursive
.
Так что я думаю, что я просто возьму дентри с:
debugfs_lookup("basename", NULL)
Возможно, мы просто не должны создавать записи debugfs на верхнем уровне, поскольку это слишком сильно загрязняет пространства имен, если у вас их несколько.
Немного непоследовательно, что некоторые очень похожие вызовы по-прежнему возвращают файл, например.:
struct dentry *debugfs_create_ulong
поэтому я думаю, что это была просто ошибка API. Разве разработчики ядра не такие совершенные боги, как когда-то я? :-О