[pso] [Tema 4] Number of dir entries

Claudiu Mihail claudiu.bogdan.mihail at gmail.com
Wed Apr 27 10:30:50 EEST 2011


Acuma merge bine, in sensul ca merg comenzile gen ls, stat etc. Dar cand
vreau sa fac cat pe un fisier nu-mi arata nimic. Evident testele cu diff
pica. Ce operatii trebuie implementate pentru a face cat/diff sa mearga
bine? Banuiesc ca cele aops, dar nu sunt sigur.

Claudiu

2011/4/27 Claudiu Mihail <claudiu.bogdan.mihail at gmail.com>

> Nevermind. Fiind prea obosit uitam sa iau blocurile de date relativ la
> primul bloc de date. Le luam din greseala relativ la dispozitiv si normal
> ca-mi dadea aberatii.
>
> Claudiu
>
>
> 2011/4/27 Claudiu Mihail <claudiu.bogdan.mihail at gmail.com>
>
>> Tot incerc sa fac functia de lookup sa mearga dar momentan fara succes. Am
>> pornit de la laboratorul 10 si practic in functia pitix_find_entry iau toate
>> blocurile din data_blocks[] la rand sa vad daca gasesc dir_entry-ul cautat.
>> Dar toate valorile din data_blocks[] par sa fie mereu 0. Eu incerc sa
>> fac stat -c %s /tmp/pitix.mnt/apt/sources.list dar imi da No such file or
>> directory. Sistemul de fisiere se monteaza ok dar mai incolo nu vad unde ar
>> putea sa fie problema. Macar e corecta conceptual abordarea mea?
>>
>> Claudiu
>>
>>
>> 2011/4/26 Claudiu Mihail <claudiu.bogdan.mihail at gmail.com>
>>
>>> Aha, am inteles. Practic ma uit in vectorul data_blocks si fac doua bucle
>>> imbricate in care citesc dir_entry-uri pentru fiecare data_block al
>>> inode-ului. Iar cate blocuri are stiu din campul size. Sau pot pur si simplu
>>> sa iterez prin vectorul data_blocks pana cand dau de o intrare cu valoare 0.
>>>
>>> Merci pentru clarificari,
>>> Claudiu
>>>
>>>
>>> 2011/4/26 Alexandru Juncu <alexandru.juncu at cs.pub.ro>
>>>
>>>> 2011/4/26 Claudiu Mihail <claudiu.bogdan.mihail at gmail.com>:
>>>> > Salut,
>>>> > Revin cu intrebari legate de functiile lookup si readdir. Presupun ca
>>>> aceste
>>>> > functii imi permit sa fac astfel incat sa treaca prima baterie de
>>>> teste din
>>>> > checker (cele read only). Intrebarea este cum stiu in driver-ul meu
>>>> cate
>>>> > pitix_dir_entry-uri sunt cand primesc apel catre functia
>>>> pitix_raeddir? In
>>>> > laboratorul 10 se preciza ca sunt maxim MINFS_NUM_ENTRY. Dar in lipsa
>>>> a ceva
>>>> > similar nu prea imi dau seama cand sa ma opresc din for-ul acela de
>>>> > parcurgere. Imi cer scuze daca este ceva evident si nu vad eu sau daca
>>>> am
>>>> > ratat vreo sursa de documentatie.
>>>> > Merci anticipat,
>>>> > Claudiu
>>>>
>>>>
>>>> În laborator, un fișier (respectiv un inode) are un singur bloc de
>>>> date. În pitixfs, un inode are 0, unul sau mai multe blocuri de date.
>>>> Așa că numărul (maxim) de dentry-uri pentur un director =
>>>> nr_de_blocuri * block_size / sizeof(pitix_dentry). Doar că numărul de
>>>> dentry-uri valide per bloc poate fi mai mic decât numărul maxim per
>>>> bloc.
>>>> _______________________________________________
>>>> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
>>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/pso/attachments/20110427/46c3982e/attachment.htm>


More information about the pso mailing list