xfs
[Top] [All Lists]

[PATCH] xfs: fix bad hash ordering

To: XFS Mailing List <xfs@xxxxxxxxxxx>
Subject: [PATCH] xfs: fix bad hash ordering
From: Mark Tinguely <tinguely@xxxxxxx>
Date: Fri, 28 Mar 2014 12:33:34 -0500
Cc: Linux Stable <stable@xxxxxxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
User-agent: quilt/0.51-1
Fix the fix directory "bad hash ordering" bug introduced in
commit f5ea1100.

Reported-by: Hannes Frederic Sowa <hannes@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Tinguely <tinguely@xxxxxxx>
---
A C program that generates this problem can be found at:
 http://oss.sgi.com/archives/xfs/2014-03/msg00373.html

A xfstest for this bug is coming from Hannes Frederic Sowa.

 fs/xfs/xfs_da_btree.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: b/fs/xfs/xfs_da_btree.c
===================================================================
--- a/fs/xfs/xfs_da_btree.c
+++ b/fs/xfs/xfs_da_btree.c
@@ -1295,7 +1295,7 @@ xfs_da3_fixhashpath(
                node = blk->bp->b_addr;
                dp->d_ops->node_hdr_from_disk(&nodehdr, node);
                btree = dp->d_ops->node_tree_p(node);
-               if (be32_to_cpu(btree->hashval) == lasthash)
+               if (be32_to_cpu(btree[blk->index].hashval) == lasthash)
                        break;
                blk->hashval = lasthash;
                btree[blk->index].hashval = cpu_to_be32(lasthash);


<Prev in Thread] Current Thread [Next in Thread>