<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Mar 29, 2014 at 4:31 PM, Sankar P <span dir="ltr">&lt;<a href="mailto:sankar.curiosity@gmail.com" target="_blank">sankar.curiosity@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">2014-03-28 23:11 GMT+05:30 Rishi Agrawal &lt;<a href="mailto:rishi.b.agrawal@gmail.com">rishi.b.agrawal@gmail.com</a>&gt;:<br>


<div class="">&gt; Hi Sankar,<br>
&gt;<br>
&gt; Have you written any code further. I read your file system&#39;s code and learnt<br>
&gt; a lot from it.<br>
&gt;<br>
<br>
</div>Good to know that you have learnt from it. I stopped at a logical<br>
closure where the filesystem is at a usable state.<br>
<br>
I did not write any code further as I am spending my personal time on<br>
changing diapers for my newborn :)<br>
<br>
Whatever little time I get, I tend to do it in trivial user space<br>
applications. Extending the filesystem requires long hours of<br>
learning, context maintenance, focus etc. So I deferred it for a later<br>
stage. I will be happy to get some patches though :)<br>
<div class="HOEnZb"><div class="h5"><br>
&gt;<br>
&gt;<br>
&gt; On Thu, Aug 8, 2013 at 8:36 PM, Sankar P &lt;<a href="mailto:sankar.curiosity@gmail.com">sankar.curiosity@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; okay. Thanks. I will update this list once I write enough code for the<br>
&gt;&gt; next release :)<br>
&gt;&gt;<br>
&gt;&gt; On Thu, Aug 8, 2013 at 4:59 PM, Greg Freemyer &lt;<a href="mailto:greg.freemyer@gmail.com">greg.freemyer@gmail.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Sankar P &lt;<a href="mailto:sankar.curiosity@gmail.com">sankar.curiosity@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt;On Thu, Aug 8, 2013 at 3:55 AM, Greg Freemyer &lt;<a href="mailto:greg.freemyer@gmail.com">greg.freemyer@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt;wrote:<br>
&gt;&gt; &gt; &lt;snip&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; I just read your todo&#39;s.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Multi-block files should come before extents and/or mmap support.  I<br>
&gt;&gt; &gt;&gt;&gt; guess you realize that ext2 and ext3 are NOT extent based<br>
&gt;&gt; &gt;&gt;filesystems.<br>
&gt;&gt; &gt;&gt;&gt;  ext4 is the first extent based one.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; So its:<br>
&gt;&gt; &gt;&gt;&gt; ext2 - block based filesystem<br>
&gt;&gt; &gt;&gt;&gt; ext3 - block based with a journal<br>
&gt;&gt; &gt;&gt;&gt; ext4 - extent based with a journal<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; In reality the current ext4 driver has a matrix of supported<br>
&gt;&gt; &gt;&gt;features.<br>
&gt;&gt; &gt;&gt;&gt;  There are flag bits which tell you which features a specific<br>
&gt;&gt; &gt;&gt;&gt; filesystem instance supports.  You may want to atleast look at those<br>
&gt;&gt; &gt;&gt;&gt; feature flags to get an idea of the kinds of features ext4 supports.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; If you don&#39;t have lseek() support for read, you need to get it added.<br>
&gt;&gt; &gt;&gt;&gt; lseek() is pretty trivial for reads so there is not much reason not<br>
&gt;&gt; &gt;&gt;to<br>
&gt;&gt; &gt;&gt;&gt; have it as the very next step.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; For write, it means you have to implement a read/modify/write cycle<br>
&gt;&gt; &gt;&gt;in<br>
&gt;&gt; &gt;&gt;&gt; your filesystem.  I gather you don&#39;t have that.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; With just those todo&#39;s I go in this order:<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; - lseek() support with read (trivial)<br>
&gt;&gt; &gt;&gt;&gt; - partial block write support (requires read/modify/write logic, so<br>
&gt;&gt; &gt;&gt;not trivial)<br>
&gt;&gt; &gt;&gt;&gt; - lseek() support for write (trivial now you have partial block write<br>
&gt;&gt; &gt;&gt;support)<br>
&gt;&gt; &gt;&gt;&gt; - multi-block support, requires a major refactor most likely.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;Thank you so much for the detailed response.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;I will go in this order as this seem to be logically progressive nicely<br>
&gt;&gt; &gt;&gt;iiuc.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;When do you think I should bring in support for mmap and page-caching<br>
&gt;&gt; &gt;&gt;that Rajat in the above plan ?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;Thanks.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;ve never done a FS from scratch so I&#39;m not sure, but I would delay<br>
&gt;&gt; &gt; them as long as you can.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I suspect you will need cache support to properly handle writes on a<br>
&gt;&gt; &gt; multi block file, so as you work on that feature you may decide &quot;now is the<br>
&gt;&gt; &gt; time&quot; for the cache.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Mmap should be last.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Greg<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt; Sent from my Android phone with K-9 Mail. Please excuse my brevity.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Sankar P<br>
&gt;&gt; <a href="http://psankar.blogspot.com" target="_blank">http://psankar.blogspot.com</a><br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Kernelnewbies mailing list<br>
&gt;&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt;&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Regards,<br>
&gt; Rishi Agrawal<br>
<br>
<br>
<br>
--<br>
Sankar P<br>
<a href="http://psankar.blogspot.com" target="_blank">http://psankar.blogspot.com</a><br>
</div></div></blockquote></div><br></div><div class="gmail_extra">I identified one memory leak while reading the code. Will send the patch.<br clear="all"></div><div class="gmail_extra"><br>-- <br>Regards,<br>Rishi Agrawal<br>


</div></div>