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. _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies