[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