XFS [Testing New Inode format]

hello everyone,
I’m currently working on the XFS project, During my work on the project Pulkomandy suggested that I should uniform the current code for the inode’s and attributes file to the OnDisk Structure format. I have successfully made Changes in the Inode’s file. There are no compilation errors in the xfs_shell build.it’s working fine. Now I’m thinking of testing these changes by actually reading the directories. I have read the GSOC 2022 contributors topic here here and successfully mount the volume over my image but I don’t know how to add directories for testing purposes. Can someone help me with that?

1 Like

Since there is no write support in Haiku yet, you have to create an XFS disk image with some files on it, for example from a Linux system. You can for example install Debian on an XFS partition and use that for your tests. (I suggest Debian because I know their installer allows this, but anything else that can create an XFS partition and write files to it will also be fine).

1 Like

can u suggest any resources for that if any?

I think the Current changes are working fine. I created an XFS sparse image and added 1000 directories to test the current changes in the inode format. I think it’s working fine. Can someone verify it?


I’m not sure what to verify from that screenshot. There are lot of debug traces from the XFS driver and we can see one directory entry (dir1700) being listed succesfully, with its permissions and date. The owner and group are both 0, is this correct? Or is getting the owner and group from disk not done yet?

Anything else you want us to check?

1 Like

yes, The owner and group are 0. Here I have updated the Inode format as you suggested with the Same OnDisk Structure, which is more convenient to understand and use. After I tested it with 1k directories I think the result is consistent with the expectations I’m currently working on the Free Space patch After which I’ll upload this patch for review.

1 Like

i have updated the paych regarding this. it’s working fine with rest of the code.