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