[Top] [All Lists]

128 bits extent bmap for file format 2

To: xfs@xxxxxxxxxxx
Subject: 128 bits extent bmap for file format 2
From: Pradeep Kumar <praks411@xxxxxxxxx>
Date: Tue, 22 Oct 2013 01:32:22 +0200
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=OoUzSa+VmoHy5kyLdMYcEEeCwihcwwFg9ri/Ip4o7+w=; b=ZcMXSLZ+LwfkVQMFS96wDFBpznckIymHHfwoontJtOJGaGdKkcqU6fxMa6DtKF/rAt DI8aHJ2Ta5dBLPsVGyG90e+IMHaR4GATFZypLDAKCsJYlRSFiU0KklVkQnTrpHwAu+U3 hEUeMm1hMz8P9k8UtzbEUTTuslJDVLeWNvRBCPY0nEyHkbfPGXkq4qM32gOWY2eLcFNr sQg5hwkJNBb8oX4J6CJGTBzEht+jw5DJCRhqGzpYGSZdY0nfk3O49C791LFEClb/Wud6 0HkUToHB08BRp1xzRtOQzs5nW0g5ixUs5vcEBFmDn9s0Lp2/it7T5CqnzvkZ8vmIZPZc LShQ==

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).

Here is the sample 128bits data
1. 00 00 00 00 00 00 00 00 00 00 00 04 99 80 00 01 (LSB)

After unpacking the bits are per doc and source code
In the above case I'm getting following
Num Of blocks = 1 (correct) (0 to 20 bits)
absolute block number = 9420 (0x24CC) (wrong) (21 to 72)
file offset = 0 (72 to 126)

I'm always getting wrong absolute block number . Actual data is in block 7628 (0x1DCC).
No matter what I try I'm always getting the same result. I've even verified this 
by using the code from xfs_bmbt_get_all function from xfs source which too gives me same result (9420). 
Please someone help me with this. I'm stuck on this from 3 days. 

Thanks and Regards,
<Prev in Thread] Current Thread [Next in Thread>