TacOS-team / tacos

Système d'exploitation / Operating System
GNU General Public License v3.0
9 stars 4 forks source link

VSF initialise extra_data #163

Closed NicolasFloquet closed 11 years ago

NicolasFloquet commented 11 years ago

J'ai remarqué que dans le "floppy_open", l'ofd qui est passé a son champ "extra_data" initialisé. Cette initialisation est faite au niveau du vfs (vfs.c:200). Cette initialisation a l'air d'avoir lieu pour tous les fichiers qui ne sont pas des pipes. D'une part, comme on a dit, l'utilisation du champ extra_data doit être réservé à celui qui le fourni via sa méthode "open", c'est à dire les devices pour devfs, et les fs eux mêmes pour tout le reste. Donc le vfs ne devrait pas avoir à toucher à ça. D'autre part, vu que l'utilisation de ce champ a l'air assez systématique, ne devrait-on pas plutôt ajouter un champ "fs_specific" pour cet usage, et garder le champ "extra_data" pour l'usage prévu?

MaximeCheramy commented 11 years ago

Je suis d'accord avec toi mais je ne suis pas certain d'avoir saisi ta proposition. Avant de toucher au code, j'aimerais qu'on en parle histoire de bien se mettre d'accord.

MaximeCheramy commented 11 years ago

Ext2 n'utilise pas d'extra data et pipe récupère l'info directement dans l'inode. Seuls procfs, devfs et fat sont donc potentiellement impactés.

Rien de bien compliqué à changer dans tous les cas : soit on récupère l'info i_fs_specific directement, soit on initialise le extra_data dans le open.

Quand tu proposes d'ajouter un champ fs_specific, ça serait juste un pointeur vers ->dentry->d_inode->i_fs_specific comme actuellement avec le extra_data (pour commodité) ? Et ensuite le extra_data ne serait touché que par le FS qui souhaite l'utiliser ?

MaximeCheramy commented 11 years ago

Tu closes si ça te va ce que j'ai fait.