From 077f5078ad094f096e623008b0e94cf86bd6e703 Mon Sep 17 00:00:00 2001
From: Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Date: Wed, 30 Jan 2013 09:22:43 +0100
Subject: [PATCH 145/482] * grub-core/fs/xfs.c (grub_xfs_read_block):
Fix computation in presence of extended attributes.
---
ChangeLog | 5 +++++
grub-core/fs/xfs.c | 4 +---
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 74ef434..e5b71cf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-01-30 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * grub-core/fs/xfs.c (grub_xfs_read_block): Fix computation in presence
+ of extended attributes.
+
2013-01-27 Andrey Borzenkov <arvidjaar@gmail.com>
* util/grub-install.in: change misleading comment about
diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c
index 49d2a89..aee1582 100644
--- a/grub-core/fs/xfs.c
+++ b/grub-core/fs/xfs.c
@@ -295,9 +295,7 @@ grub_xfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock)
nrec = grub_be_to_cpu16 (node->inode.data.btree.numrecs);
keys = &node->inode.data.btree.keys[0];
if (node->inode.fork_offset)
- recoffset = (node->inode.fork_offset
- - ((char *) &node->inode.data.btree.keys - (char *) &node->inode))
- / (2 * sizeof (grub_uint64_t));
+ recoffset = (node->inode.fork_offset - 1) / 2;
else
recoffset = ((1 << node->data->sblock.log2_inode)
- ((char *) &node->inode.data.btree.keys
--
1.8.2.1