xfs: Some bugfixes
XFS inodes never share filesystem blocks with anything else. The driver
used to calculate wrong the offset within a chunk of inode found in inode
B+trees. The correct calculation is to get the lower bits of the inode
number (which is the inode number within a chunk) and multiply by inode
size to get the right offset.
The "bb_rumrecs" and "bb_level" fields (found in leaf entries of inode
B+trees) were being read incorrectly, since they're all stored in
big-endian on disk and we did not convert them to litte-endian respectively.
Besides, fix some memory leaks.
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>