[so2] [Tema5] Intrebare pitix_truncate

Sergiu Weisz sergiu121 at gmail.com
Sun Apr 19 16:13:27 EEST 2020


On 19.04.2020 15:52, Alexandru Meterez via so2 wrote:
> Salutare.
> Nu inteleg daca pitix_truncate merge ca truncate-ul din userspace.
> 
> Adica in pitix_setattr, care eu inteleg ca se apeleaza mereu cand se schimba 
> ceva legat de inode(dimensiune, drepturi etc), daca modific size-ul, trebuie sa 
> intre pe pitix_truncate. In pitix_truncate, in functie de attr->ia_size, trebuie 
> sa ma uit daca noul size e mai mare sau mai mic fata de cel vechi si sa aloc mai 
> multe blocuri, respectiv sterg blocuri.
> 
> Nu stiu daca fac eu ceva fundamental gresit, dar la mine attr->ia_size e vesnic 
> 0. Am pus printuri si nu se schimba nimic cand scriu/sterg ceva dintr-un fisier. 
> Putin ajutor va rog?

Salutare,

Ai inteles corect ce face truncate.

Dimensiunea noua o determini in functie de numarul de blocuri pe care le are 
inode-ul, nu din attr->ia_size.

Poti sa vezi o implementare referinta aici [1].

[1] https://elixir.bootlin.com/linux/latest/source/fs/minix/itree_common.c#L294

Sergiu


More information about the so2 mailing list