I was able to resolve the issue. This was indeed related to conversion between FSB to actual data block in image file. I would like to thanks Dave for showing the direction.
So to summarize the extent data (128 bits, format =2) gives absolute block number which is in term of XFS file system block this need to be converted into actual disk block.
I've used two macros for it.
First one give the actual AG number and the second one gives the block number in that AG.
Now coming back to my previous example which I posted
My extent data was.
00 00 00 00 00 00 00 00 00 00 00 04 99 80 00 01 (LSB)
After unpacking, absolute block number = 9420 (0x24cc).
Converting to actual data block using above two macros gives me AG No. = 1, AG Block No = 1228. So final block (1*6400 + 1228 = 7628) which is correct.(I was able to get correct file contents)
Please let me know if above computation is correct. It seems correct to me as I'm able to retrieve all the files.
Still I couldn't get two macros.
I couldn't find m_sectbb_log and m_blkbb_log fields. Please someone share more knowledge on above
macros like where they are used and also description of input and output field
Thanks and Regards,
Pradeep
On 22 October 2013 10:08, Pradeep Kumar <praks411@xxxxxxxxx> wrote:
Hi Dave,Thanks for the reply. I think I may get my solution. Can you explain the difference between the two?I've created sample xfs file using mkfs.xfs with mostly default parameter1. Sector Size = 5122. Block size = 40963. AG Number = 24. Number of blocks per AG = 6400.So when I get absolute block 9420 from file extent data I'm going to (6400 + 3020) , 3020 block of second AG which is wrong. The file start from 7628 absolute block or (6400 + 1228), 1228 block of second AG.Please describe in some detail above the conversion which you are talking about.Thanks and Regards,PradeepOn 22 October 2013 02:12, Dave Chinner <david@xxxxxxxxxxxxx> wrote:On Tue, Oct 22, 2013 at 01:32:22AM +0200, Pradeep Kumar wrote:Extents use filesystem block encodings, not disk addresses. Look up
> Hi,
>
> I'm writing a small utility to parse XFS fs image on windows.
> I'm able to fetch the files in the first AG (0).
> However when it comes to the files which are in different AG I'm facing
> some problem in parsing extent bmap 128bits data of file inode (format ==
> 2).
the macros XFS_DADDR_TO_FSB and XFS_FSB_TO_DADDR.
Cheers,
Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx
_______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs