Ok, cred că am găsit ceva...<br><br><div class="gmail_quote">2013/5/12 Florin-Alexandru Stancu <span dir="ltr"><<a href="mailto:niflostancu@gmail.com" target="_blank">niflostancu@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<b>2. write_inode</b><br>Mai am o problemă asemănătoare şi la <b>write_inode</b>. De data asta nerezolvată :D <br>
Doar că aici nu mi se apelează deloc dacă dau umount prea devreme. <br>Trebuie, la fel, să aştept câteva secunde după ce am făcut modificările să mi se scrie inode-ul pe disk.<br>Am apelat <b>mark_inode_dirty</b> peste tot, sunt 100% sigur de asta. La fel, <b>brelse</b>-uri apelate bine (însă aici nici nu apucă să se execute, deoarece nu-mi intră deloc în write_inode când dau umount).<br>
Şi acum nu am mai modificat buffer_size-ul. A rămas cel setat în <b>fill_super</b>.<br><br>Ştie careva din ce cauză se întâmplă lucrul acesta?<br>Cum pot forţa să-mi salveze inode-urile dirty automat înainte de mount? <br>
Am găsit nişte rutine de sincronizare a device-ului răsfoind prin surse, o să încerc să le apelez, dar am marcat bufferele ca dirty, ar trebui să mi se salveze la un moment dat.<br>Am căutat şi în codul sursă de la minix şi nu se apelează nimic neobişnuit (nici o astfel rutină de buffer sync etc.).<br>
De ce minix nu are problema asta, deşi nu a apelat nicio rutină de sincronizare?<br><br>Mulţumesc.<br>
</blockquote></div><br>Aici văd că la <b>put_super</b> îmi apelează <b>evict_inode</b> pentru toate inodeurile folosite.<br>Funcţia e copiată de aici: <a href="http://lxr.free-electrons.com/source/fs/minix/inode.c#L27">http://lxr.free-electrons.com/source/fs/minix/inode.c#L27</a><br>
<br>Cumva asta blochează write-urile... dar nu mă prind de ce la minix merge şi la mine nu :( copiată perfect!<br><br>Încerc să comentez pe acolo chestii, văd ce iese.<br><br>