[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