[pso] [linux3]nelamuriri despre pitix_dir_entry, write_inode,
clear_inode
Octavian Purdila
tavi at cs.pub.ro
Tue Aug 28 20:34:53 EEST 2007
On Tuesday 28 August 2007 03:04, Catalina Caloian wrote:
> Buna.
>
> As avea cateva intrebari/aspecte de confirmat:
>
> 1. - E corect ca in implementarea 'mkdir' trebuie sa modific blocul de date
> al directorului parinte, asociind o inregistrare 'pitix_dir_entry' cu
> subdirectorul pe care tocmai l-am creat?
Da, e corect.
> Adica: nu exista o functie
> similara cu 'write_inode' pe care sa o apeleze VFS-ul si careia sa-i deleg
> scrierea pe disc a unui bloc de date (cu ramificatii pentru un bloc de date
> dintr-un director sau dintr-un fisier); daca exista o astfel de functie, nu
> prea imi dau seama care e :)
>
Nu, nu exista. Trebuie sa citesti de mana blocul de data al directorului
parinte si sa il modifici.
> 2. - In laborator se sugereaza ca incepatorii sa implementeze 'write_inode'
> incarcand de pe disc inode-ul cu 'bread', modificand buffer-head-ul astfel
> incat sa reflecte informatia din inode-ul care trebuie salvat si marcand
> apoi buffer-ul ca dirty. Cum insa in cazul nostru un inode poate sa se afle
> intre 2 blocuri succesive, sugestia de mai sus implica reproducerea
> calculelor din 'read_inode' pentru a afla blocul in care se afla un inode,
> offset-ul in cadrul acestuia etc. Exista vreo modalitate de a evita
> refacerea calculelor din 'read_inode'?
>
Te poti ajuta de o functie intermediara, care sa faca calculele si pentru
read_inode si pentru write_inode.
> 3. - In 'clear_inode' ar trebui eliberata eventuala memorie alocata pentru
> a tine in inode informatie specifica sistemului de fisiere (prin
> intermediul inode->u.generic_ip). 'iput' va fi apelata de catre VFS la un
> moment convenabil sau acest apel trebuie facut explicit in 'clear_inode'?
Nu trebuie sa faci iput in clear_inode, clear_inode se chema ca rezultat al
unui iput.
Spor,
tavi
More information about the pso
mailing list