VFS で何かをチェックするカーネルモジュールを書いていました。このモジュールでは、次のように定義されているカーネル API「putname」を使用する必要があります。
#ifdef CONFIG_AUDITSYSCALL
void putname(const char *name)
{
if (unlikely(!audit_dummy_context()))
audit_putname(name);
else
__putname(name);
}
EXPORT_SYMBOL(putname);
カーネル 3.6.10 の Fedora 18 でコンパイルしたところ、すべて問題なく動作し、モジュールは正常に動作しましたが、カーネル 3.11.4 に切り替えると。コンパイラから「putname is undefined」という警告が表示されました。「putname」を「__putname」に置き換えると、カーネル モジュールはコンパイルできますが、実行中に何か問題が発生します。バックトレースは、それが __putname にあったことを示しています。この問題について私を助けることができる人はいますか? ありがとう