From 794c29bb1f4726a35e280c00c42b1443703cfe63 Mon Sep 17 00:00:00 2001 From: Guillaume Chanel <Guillaume.Chanel@unige.ch> Date: Thu, 17 Oct 2024 15:44:56 +0200 Subject: [PATCH] Precise other del_entry steps --- 9.filesystems/05_Systemes_fichiers_implementation.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/9.filesystems/05_Systemes_fichiers_implementation.md b/9.filesystems/05_Systemes_fichiers_implementation.md index 8a15357..fa5219e 100644 --- a/9.filesystems/05_Systemes_fichiers_implementation.md +++ b/9.filesystems/05_Systemes_fichiers_implementation.md @@ -340,8 +340,14 @@ int lookup_entry(dir_inode, name) { ```c del_entry(dir_inode, name) ``` +<div style="font-size: 0.8em"> - La fonction `del_entry` supprime un fichier d'un répertoire - `del_entry` réalise une recherche linéaire de la chaîne de caractères `name` dans les entrées de répertoire (`dir_entry`) du répertoire dont l'inode est `dir_inode` : - Attention : tout comme pour `lookup_entry`, le contenu du répertoire peut-être réparti sur plusieurs blocs -- Une fois l'entrée de répertoire (`dir_entry`) trouvée, son champs inode est mis à zéro et le bloc modifié est écrit sur disque +- Une fois l'entrée de répertoire (`dir_entry`) et son numéro d'inode trouvée: + - le nombre de liens pointant vers l'inode correspondant est décrémenté; + - si le nombre de liens tombe à 0 il faut supprimer l'inode (e.g. en mettant le bit dans le bitmap d'inode à 0); + - le champ inode du `dir_entry` est mis à zéro et le bloc modifié est écrit sur disque. + +</div> \ No newline at end of file -- GitLab