<div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, May 1, 2012 at 11:42 PM, Sofia Neata <span dir="ltr"><<a href="mailto:sofia.neata@gmail.com" target="_blank">sofia.neata@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">2012/5/1 Cristian Chilipirea <<a href="mailto:cristian.chilipirea@cti.pub.ro" target="_blank">cristian.chilipirea@cti.pub.ro</a>>:<br>
<div><div>><br>
><br>
> On Tue, May 1, 2012 at 5:07 PM, Razvan Deaconescu<br>
> <<a href="mailto:razvan.deaconescu@cs.pub.ro" target="_blank">razvan.deaconescu@cs.pub.ro</a>> wrote:<br>
>><br>
>> Cristian Chilipirea <<a href="mailto:cristian.chilipirea@cti.pub.ro" target="_blank">cristian.chilipirea@cti.pub.ro</a>> writes:<br>
>> > Problema:<br>
>> ><br>
>> > Cand?<br>
>> > echo dummy \\> /tmp/pitix.mnt/lots_of_files/file0<br>
>> ><br>
>> > Ce se intampla?<br>
>> > Se apeleaza functiile de address_space_operations in loc de truncate.<br>
>> > Se ajunge in pitix_get_block cu inode->i_size == 0 si create == 1<br>
>> ><br>
>> > Nu se intra niciodata in truncate.<br>
>><br>
>> Să înțeleg că dimensiunea fișierului nu ajunge la 6? Și nici conținutul<br>
>> său nu este "dummy\n"?<br>
><br>
><br>
> Scrierea se face ok, problema e ca in loc sa ajunga la 6 ajunge la 512.<br>
> get_block lucreaza cu blocuri asa ca ii aloc un bloc nou si il las sa faca<br>
> ce vrea cu el.<br>
> Problema si mai amre e ca nu se apeleaza nici o functie care sa stearga<br>
> blocul vechi. (cum ar fi truncate).<br>
><br>
> In caz ca ajuta address_space_operations ale mele sunt:<br>
><br>
> .write_end = generic_write_end,<br>
> .sync_page = block_sync_page,<br>
> .readpage = pitix_readpage,<br>
> .writepage = pitix_writepage,<br>
> .write_begin = pitix_write_begin,<br>
> .bmap = pitix_bmap,<br>
><br>
> Si toate apeleaza "pitix_get_block" care face alocare daca e create == 1<br>
<br>
</div></div>Dar file_operations si inode_operations?<br>
<br>
<br>
Sofia<br>
_______________________________________________<br>
<a href="http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii" target="_blank">http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii</a></blockquote><div> </div></div>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.<br>
<br>Ar fi dragut o corectare a enuntului astfel incat sa nu induca si pe altii in confuzie.<br>Deasmenea file nu are nevoie de .create ci doar directoarele au. Nu poti sa creezi un nou "ceva" intr-un fisier.<br>
<br>Pentru corectii ma refer la bucata <br>"<br>Practic va trebui să implementați următoarele operații:
<ul><li class="level1"><div class="li"> pentru directoare: <code>lookup</code>, <code>unlink</code>, <code>mkdir</code>, <code>rmdir</code>, <code>readdir</code></div>
</li><li class="level0"><div class="li"> pentru fișiere: <code>create</code>, <code>truncate</code>, funcția de bitmap (vezi <a href="http://lxr.free-electrons.com/source/fs/minix/inode.c?v=2.6.31#L339" class="urlextern" title="http://lxr.free-electrons.com/source/fs/minix/inode.c?v=2.6.31#L339" rel="nofollow"> minix_get_block</a>)"</div>
</li></ul>
</div>