[pso] [tema3] cum ajung de la struct inode* la struct pitix_inode*?

Catalin Iacob iacobcatalin at gmail.com
Fri Aug 24 01:31:05 EEST 2007


Salut

Incerc sa fac sa mearga stat. Am implementat read_inode (nu stiu daca
perfect si complet) si am ajuns la lookup pe director. Acolo primesc inode*
dir care descrie directorul si vreau sa aflu care sunt indecsii blocurilor
de date din fisierul (de tip director) descris de acest dir primit ca
parametru. Indicii sunt in data_blocks[0] din struct pitix_inode. Sper ca am
inteles bine si lucrurile stau cum am zis :D.

Deci intrebarea e cum ajung de la inode* la pitix_inode* asociat.

Ideea mea e ca in read_inode sa aloc cu kmalloc o structura pitix_inode si
sa pun in campul i_priv pointerul catre ea. E ok asa? Si daca da, cand ar
trebui sa fac kfree pe pointerul i_priv? In destroy_inode, clear_inode,
put_inode sau pe unde ? (nu m-am uitat inca foarte atent la ce fac functiile
astea si care e diferenta intre ele)

O alta idee e sa recitesc de pe disc struct pitix_inode si in lookup dar mi
se pare cam ineficient si cam aiurea(se duplica multe calcule de offet si
index si mult cod).

Am vazut si solutia din minix in care struct inode e un membru al lui
minix_inode si de la inode se ajunge la minix_inode cu list_entry dar mi se
pare cam complicata fiindca cere schimbarea structurii pitix_inode din
pitix.h asa ca as cam evita ceva de genul asta.

Multumesc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/pso/attachments/20070824/d9de2fbf/attachment.html


More information about the pso mailing list