[so2] [Tema4] Truncate

Sofia Neata sofia.neata at gmail.com
Tue May 1 23:42:41 EEST 2012


2012/5/1 Cristian Chilipirea <cristian.chilipirea at cti.pub.ro>:
>
>
> On Tue, May 1, 2012 at 5:07 PM, Razvan Deaconescu
> <razvan.deaconescu at cs.pub.ro> wrote:
>>
>> Cristian Chilipirea <cristian.chilipirea at cti.pub.ro> writes:
>> > Problema:
>> >
>> > Cand?
>> > echo dummy \\> /tmp/pitix.mnt/lots_of_files/file0
>> >
>> > Ce se intampla?
>> > Se apeleaza functiile de address_space_operations in loc de truncate.
>> > Se ajunge in pitix_get_block cu inode->i_size == 0 si create == 1
>> >
>> > Nu se intra niciodata in truncate.
>>
>> Să înțeleg că dimensiunea fișierului nu ajunge la 6? Și nici conținutul
>> său nu este "dummy\n"?
>
>
> Scrierea se face ok, problema e ca in loc sa ajunga la 6 ajunge la 512.
> get_block lucreaza cu blocuri asa ca ii aloc un bloc nou si il las sa faca
> ce vrea cu el.
> Problema si mai amre e ca nu se apeleaza nici o functie care sa stearga
> blocul vechi. (cum ar fi truncate).
>
> In caz ca ajuta address_space_operations ale mele sunt:
>
>     .write_end      = generic_write_end,
>     .sync_page      = block_sync_page,
>     .readpage       = pitix_readpage,
>     .writepage      = pitix_writepage,
>     .write_begin    = pitix_write_begin,
>     .bmap           = pitix_bmap,
>
> Si toate apeleaza "pitix_get_block" care face alocare daca e create == 1

Dar file_operations si inode_operations?


Sofia


More information about the so2 mailing list