Ядро Linux - Обновление VFS Dentry Cache - PullRequest
1 голос
/ 25 апреля 2010

Я написал системный вызов, который открывает каталог и получает объект файла и структуру dentry. Я пытаюсь перечислить все записи, включая записи в подкаталогах, используя макрос list_for_each (). Проблема состоит в том, что он отображает только то, что в данный момент находится в кеше. Если я открою каталог с помощью nautilus, то перезапущу системный вызов, все записи будут перечислены. Есть ли способ проверить точный список записей или обновить кеш?

f = s_open(tpath);

fle = fget(f);
d = fle->f_path.dentry;
list_for_each ( dentry ) {   
    ...
}
sys_close(f);

1 Ответ

3 голосов
/ 25 апреля 2010

Почему вы используете системный вызов для чтения содержимого каталога? Похоже, вы действительно должны быть в пользовательском пространстве, и тогда вам следует использовать что-то вроде opendir.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...