2010-04-25 4 views
1

J'ai écrit un appel système qui ouvre un répertoire et récupère l'objet fichier et la structure dentry. Im essayant de lister toutes les entrées comprenant des entrées dans des sous-répertoires utilisant la macro de list_for_each(). Le problème est son seul affichage de ce qui est actuellement dans le cache Dentry. Si j'ouvre le répertoire avec nautilus puis réexécute l'appel système, toutes les entrées sont listées. Existe-t-il un moyen de vérifier la liste exacte des entrées ou d'actualiser le cache?Noyau Linux - Rafraîchissement du cache Denison VFS

f = s_open(tpath); 

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

Y a-t-il une raison particulière pour laquelle vous ne le faites pas dans l'espace utilisateur? –

Répondre

3

Pourquoi utilisez-vous un appel système pour lire le contenu d'un répertoire? On dirait que vous devriez vraiment être dans l'espace utilisateur, et que vous devriez alors utiliser quelque chose comme opendir.