[so2] [Tema4] Truncate

Cristian Chilipirea cristian.chilipirea at cti.pub.ro
Wed May 2 07:14:57 EEST 2012


On Tue, May 1, 2012 at 11:42 PM, Sofia Neata <sofia.neata at gmail.com> wrote:

> 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
> _______________________________________________
> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii


Din cate imi dau seama acum address_space_operations se ocupa si de
truncare asa ca functia truncate pare sa nu fie apelata in genere.

Ar fi dragut o corectare a enuntului astfel incat sa nu induca si pe altii
in confuzie.
Deasmenea file nu are nevoie de .create ci doar directoarele au. Nu poti sa
creezi un nou "ceva" intr-un fisier.

Pentru corectii ma refer la bucata
"
Practic va trebui să implementați următoarele operații:

   - pentru directoare: lookup, unlink, mkdir, rmdir, readdir
   - pentru fișiere: create, truncate, funcția de bitmap (vezi
   minix_get_block<http://lxr.free-electrons.com/source/fs/minix/inode.c?v=2.6.31#L339>
   )"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so2/attachments/20120502/3856be06/attachment.htm>


More information about the so2 mailing list