2
我正在編寫一個內核模塊來檢查VFS中的某些內容。在這個模塊中,我需要使用的內核API「putname」,其定義爲:當編譯我的內核模塊時出現「WARNING,putname undefined」
#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,一切都OK,模塊工作正常,但是當我將它切換到內核3.11.4。編譯器給了我一個警告「putname is undefined」,當我將「putname」替換爲「__putname」時,內核模塊可以被編譯,但是當它運行時,會出錯。回溯顯示它在__putname中。有沒有人可以幫助我解決這個問題? 感謝
我知道接口已經改變了,但是我試圖通過getname()來得到一個''struct filename *'',但是編譯器會拋出與原始問題相同的錯誤。 – Shubs