[so2] [Tema4] Truncate

Cristian Chilipirea cristian.chilipirea at cti.pub.ro
Tue May 1 17:12:50 EEST 2012


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

>
> Răzvan
>
_______________________________________________
> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so2/attachments/20120501/7bce0623/attachment.htm>


More information about the so2 mailing list