<div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, May 1, 2012 at 11:42 PM, Sofia Neata <span dir="ltr">&lt;<a href="mailto:sofia.neata@gmail.com" target="_blank">sofia.neata@gmail.com</a>&gt;</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 &lt;<a href="mailto:cristian.chilipirea@cti.pub.ro" target="_blank">cristian.chilipirea@cti.pub.ro</a>&gt;:<br>


<div><div>&gt;<br>
&gt;<br>
&gt; On Tue, May 1, 2012 at 5:07 PM, Razvan Deaconescu<br>
&gt; &lt;<a href="mailto:razvan.deaconescu@cs.pub.ro" target="_blank">razvan.deaconescu@cs.pub.ro</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Cristian Chilipirea &lt;<a href="mailto:cristian.chilipirea@cti.pub.ro" target="_blank">cristian.chilipirea@cti.pub.ro</a>&gt; writes:<br>
&gt;&gt; &gt; Problema:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Cand?<br>
&gt;&gt; &gt; echo dummy \\&gt; /tmp/pitix.mnt/lots_of_files/file0<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Ce se intampla?<br>
&gt;&gt; &gt; Se apeleaza functiile de address_space_operations in loc de truncate.<br>
&gt;&gt; &gt; Se ajunge in pitix_get_block cu inode-&gt;i_size == 0 si create == 1<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Nu se intra niciodata in truncate.<br>
&gt;&gt;<br>
&gt;&gt; Să înțeleg că dimensiunea fișierului nu ajunge la 6? Și nici conținutul<br>
&gt;&gt; său nu este &quot;dummy\n&quot;?<br>
&gt;<br>
&gt;<br>
&gt; Scrierea se face ok, problema e ca in loc sa ajunga la 6 ajunge la 512.<br>
&gt; get_block lucreaza cu blocuri asa ca ii aloc un bloc nou si il las sa faca<br>
&gt; ce vrea cu el.<br>
&gt; Problema si mai amre e ca nu se apeleaza nici o functie care sa stearga<br>
&gt; blocul vechi. (cum ar fi truncate).<br>
&gt;<br>
&gt; In caz ca ajuta address_space_operations ale mele sunt:<br>
&gt;<br>
&gt;     .write_end      = generic_write_end,<br>
&gt;     .sync_page      = block_sync_page,<br>
&gt;     .readpage       = pitix_readpage,<br>
&gt;     .writepage      = pitix_writepage,<br>
&gt;     .write_begin    = pitix_write_begin,<br>
&gt;     .bmap           = pitix_bmap,<br>
&gt;<br>
&gt; Si toate apeleaza &quot;pitix_get_block&quot; 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 &quot;ceva&quot; intr-un fisier.<br>
<br>Pentru corectii ma refer la bucata <br>&quot;<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>)&quot;</div>
</li></ul>
</div>