Community Bonding period started, I got familiar with haiku implementation of xfs during my application period and after it as well.
After my application period I did mostly research and read lots of documentation and prepared a roadmap for easing project development.
I will very soon upload that on Haiku Trac in form of tickets and comments so that others can get a good Idea as well.
Anyways here is what I will be starting to work from today :
Implement xfs version 5 superblock.
Get crc32 checksum table and implement ck_sum (I will take inspiration from its linux implementation) function for metadata checksumming.
Test if we are getting valid version 5 superblock on mounting filesystem image and fix bugs/issues that comes.
After this I believe we should be able to detect valid super block for both xfs version 4 & 5.
Welcome Mashijams. I wish you success and fun working on your GSoC goals!
I think it would be better if you created personal blog posts for your progress reports and only open threads on the forum for questions and generel discussion. That way it will be easier to follow your work, also in the years to come. If someone wants to get an overview on the xfs GSoC project, they’ll just check your blog and get all the info.
Hello Everyone,
Xfs version 5 requires metadata checksumming with Crc32c, which is common for many filesystems.
I will be importing code from this https://web.mit.edu/freebsd/head/sys/libkern/crc32.c implementation of it.
What is the correct way to include it in our xfs code?
As of now I simply created header file “Crc32c.h” which includes all the code above and then used it in checksumming functions, but I think this may not be very correct way.
I think we can have better discussion by directly looking at code on gerrit for review, so I will try to push patch very soon ( After completing work of super block ).
Is it better Idea to move it to shared file?
We might need to change it little bit to work for xfs_shell and its possible it may not work for other file systems.
As noone has mentioned this:
Whenever we import foreign dependencies it is good to point at exactly where and what version/tag/git revision the code come from. It makes it so much easier for others to understand if it is ok, if we should upgrade and if it is secure.
So commits should always try to explain to the person coming after you where/why/how kind of thing.
Move the files to filesystems/shared: crc32.c, CRCTable.cpp, CRCTable.h from ext2, and crc_table.c from the UDF filesystem (it was used to generate the tables in CRCTable.cpp)
Adjust the jamfiles for ext2 and udf to use these files from the shared directory
You can make a commit with that already
Then, see how to use the same code in XFS and make it compatible with fs_shell (which is a good idea anyway, if we want to make an ext2_shell or udf_shell some day).