xfs version 5 Inodes work is done, we can now read and verify (checksums and other stuff) of inodes
(It known as inode version 3) while simultaneously not loosing support for inode version 1 & 2 ( xfs version 4).
I also finished short-form directory work, It was quite pain to get where on-disk headers are stored for short-form directories, It took me some time but I managed to get it work.
For Node directories we don’t have proper read support for V4 too (We are not getting matching maps for entries) so as of now I am fixing that, simultaneously I will add V5 node directories support as well.
It took me some time though because I needed to find some elegant way to handle both versions, once that was done I quickly finished remaining work as well.
I am happy to say we now have same basic read support for xfs version 5 as we had for version 4 .
I will share more of my thoughts on blog (Its been a month since I made one) .
Completed Leaf based attributes support for both Versions of XFS.
On V4 mounted File System, attributes are known as “attr2”
On V5 mounted File System, attributes are known as “attr3”
Woahh I wonder how much we can store in B+Tree based attributes, XFS does comes handy when we need to store really large number of attributes.
Though the value of attributes can’t be more than 64KB (basic directory block size).
I implemented both formats in my latest patch and that finishes all the work that is needed for symbolic links.
On V4 mounted xfs :
On V5 mounted xfs :
I implemented it with different API than other file systems on Haiku like ext2, btrfs to make our xfs code more elegant.
Anyways we are almost at the end of GSoC period now, I will finish remaining extended attributes work and then will prepare final report
oh, and you can mount a volume in a folder too? this is new for me, i totally ignore that commad was on haiku too, btw great work with your xfs project.
I was trying to introduce Block Cache for xfs and there are some doubts I wanna ask.
There is CachedBlock.h which acts as an interface for block cache, so if I introduce that and cache the directory block, the next call to read_pos() for the block will not go to disk right?
Or is there some other function() to call the cached block?
Also, I can’t edit this thread name to remove [GSoC 22].
GSoC already ended for me so it would be nice if someone could remove it.
BTY @Mashijams the xfs driver has become dog slow lately since you’ve added the xattr, i guess it went unnoticed because you only tested it in the terminal, you can build the Qt filemanager below to test it with.