[pso] [tema4][lin] Bad Data Blocks

Claudiu Mihail claudiu.bogdan.mihail at gmail.com
Sat Apr 30 16:08:29 EEST 2011


Salut,

Pana la urma am reusit sa rezolv problema. Aparent se tragea de la faptul ca
nu citeam inodurile foarte bine. Atunci cand erau pe doua bloc-uri abordarea
mea nu era foarte buna. Acuma le citesc in felul urmator (sper sa ajute pe
cineva candva si de acceea scriu) si mare ca merge:

1) Aloc un buffer destul de mare pentru doua blocuri
2) Citesc blocul din care incepe inode-ul dorit si blocul imediat urmator
(chiar daca s-ar putea sa nu fie mereu necesar) si pun ambele blocuri in
buffer-ul de la 1)
3) Calculez offset-ul de la care incepe inode-ul si si iau inode-ul
respectiv facand un cas de genul pi = (struct pitix_inode *)(buffer +
offset_within_block); unde buffer este un buffer de tip char

Asa merge ok si-mi trec toate etstele de raed-only (cel putin pe masina
mea). Sper sa ajute si pe altii post-ul acesta.

Claudiu

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

> Salut,
>
> Dupa incercari multiple am reusit sa fac readdir sa mearga. Si acuma
> testele de raedonly merg in afara de un singur caz. In momentul cand vreau
> sa fac ls /tmp/pitix.mnt/apm/evend.d/ se apeleaza (cum este normal) functia
> de readdir dar esueaza. Ce este interesant este ca primele doua blocuri de
> date din inode-ul respectiv contin valori de ordinul zecilor de mii (evident
> mult peste limita dispozitivului), urmeaza un sir de data blcoks cu valori
> de 0 unul de 91, cateva de 0, unul de 8 si 0 pana la sfarsit. Nu prea ma
> prind de ar veni valori de ordinul zecilor de mii pentru acest caz. Am
> verificat restul fisierelor si directoarelor manual si nu am agsit vreo
> problema. Asadar sunt sunt complet in ceata.
>
> In caz ca ajuta eu iau un inode care se intinde pe doua blocuri facand doua
> sb_bread, citind cele doua bucati din inode ca siruri de bytes si punandu-le
> cu memcpy intr-o variabila inode. Banuiesc ca aceasta parte este ok, dar
> poate gresesc ceva sau e un common gotcha pe care il ratez. Orice sugestie
> este binevenita.
>
> Multumesc,
> Claudiu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/pso/attachments/20110430/b824e483/attachment.htm>


More information about the pso mailing list