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