[so2] [Tema4] cand scade bfree

Alexandru Preda alexandru.preda91 at gmail.com
Mon May 11 23:20:20 EEST 2015


2015-05-11 22:02 GMT+03:00 Alexandra Sandulescu via so2 <so2 at cursuri.cs.pub.ro>:
> Hello,
>
> Eu am inteles ca trebuie sa marchez un block de date ca folosit in apelul
> pitix_new_inode pentru pitix_inode->data_blocks[0]. aici decrementez si
> bfree.
> Mai fac asta in get_block in cazul in care create e pe 1. totusi pare ca mai
> trebuie sa fac asta si in alte locuri.
> pentru directoare trebuie sa am si data_blocks[0] si data_blocks[1] ocupate
> la creare?

Bună,

Bănuiesc că ai tras concluzia greșită că un inode va avea cel puțin un
bloc ocupat din următoarea informație de pe wiki: "Primul bloc, cel cu
index 0, este tot timpul alocat când se face formatarea. Acest bloc nu
va putea fi folosit și, în consecință, valoarea 0 într-un element din
vectorul data_blocks înseamnă bloc liber". De fapt, se referă la
blocul aferent directorului rădăcină (vezi mai jos: "Directorul
rădăcină va avea alocat inode-ul 0 și blocul de date 0").

Trecând peste toate astea, un inode nou creat va avea 0 blocuri de
date ocupate, alte blocuri fiind alocate, după cum ai spus și tu, în
funcția get_block.

Pentru directoare va trebui, într-adevăr, să aloci un bloc (și numai
unul) în funcția mkdir.

Ce faci în continuare cu bfree cred că este destul de evident.

--
Baftă,
AlexP


More information about the so2 mailing list