GSoC 2020 Project Update: XFS
Hello there! It’s been exactly a month since my last post. Sorry for not posting much!
Work done so far: You can check for the patches here: https://review.haiku-os.org/q/hashtag:gsoc2020+owner:shubhambhagat111%2540yahoo.com
But in short this is what is done,
- Made some small change in the File System interface docs to make the working of readdir a little more understandable.
- Inodes can now be read from disk, it was interesting to see how inode was located on the disk itself though. Had to try a few times until I got it right.
- Implemented read_stat and get_vnode hook. It’s not really anything complex I think. I took inspiration of implementation from other FileSystems we have and I guess by reading the docs.
- Short Directories can now be read. This means when the entries inside a directory are less, all the entry metadata can be stored inside the inode itself. Getting this to work was exciting!
- Block Directories can now be read. Ofcourse the number of entries might increase and we might want to do better than short directories. Hence, a directory block (4KB in my test), is used to store all metadata of entries. I tried and I could have around 100ish directory entries inside a block directory.
I feel initially quite some time was spent on structuring things a little bit. To understand how to make something work.
Next Steps: In my previous post I had mentioned about Extent List based directories. Extent list based consists really of block and leaf directories. So since half of it is complete, I will now work on the other half. And after that I will move on to B+Trees. Let’s see how it goes :)
What I learnt:
- A lot of git
- Quite a lot about the subtle differences in C and C++
- Hopefully our coding guidelines :P Probably a lot more things that I don’t remember right now.
I personally enjoyed so far and hope that you liked my work (and also maybe liked working with me :P).
I accept feedback and criticism!
- Haiku Activity Report - September 2020
- Haiku Activity Report - August 2020
- Rust on Haiku: the Case of the Disappearing Deceased Threads
- GSoC2020 Final Report: Input Preferences
- GSoC 2020 Final Report: Improving and Extending Services Kit
- GSoC 2020 Final Report: XFS File System
- GSoC 2020 Project Update(UFS2): Reading Files
- GSoC 2020 Project Update(UFS2): Reading Symboliclinks
- Manipulating window look & behaviour with 'hey'
- GSoC 2020 Project Update: XFS