[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