37 lines
1.3 KiB
Diff
37 lines
1.3 KiB
Diff
|
|
From b7b81f336ac02f4e4f24e0844a7fb3023c489667 Mon Sep 17 00:00:00 2001
|
||
|
|
From: "Darrick J. Wong" <djwong@kernel.org>
|
||
|
|
Date: Tue, 14 Mar 2023 18:01:55 -0700
|
||
|
|
Subject: [PATCH] xfs_repair: fix incorrect dabtree hashval comparison
|
||
|
|
|
||
|
|
If an xattr structure contains enough names with the same hash value to
|
||
|
|
fill multiple xattr leaf blocks with names all hashing to the same
|
||
|
|
value, then the dabtree nodes will contain consecutive entries with the
|
||
|
|
same hash value.
|
||
|
|
|
||
|
|
This causes false corruption reports in xfs_repair because it's not
|
||
|
|
expecting such a huge same-hashing structure. Fix that.
|
||
|
|
|
||
|
|
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
|
||
|
|
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
|
||
|
|
Signed-off-by: Carlos Maiolino <cem@kernel.org>
|
||
|
|
---
|
||
|
|
repair/da_util.c | 2 +-
|
||
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/repair/da_util.c b/repair/da_util.c
|
||
|
|
index 7239c2e..b229422 100644
|
||
|
|
--- a/repair/da_util.c
|
||
|
|
+++ b/repair/da_util.c
|
||
|
|
@@ -330,7 +330,7 @@ _("%s block used/count inconsistency - %d/%hu\n"),
|
||
|
|
/*
|
||
|
|
* hash values monotonically increasing ???
|
||
|
|
*/
|
||
|
|
- if (cursor->level[this_level].hashval >=
|
||
|
|
+ if (cursor->level[this_level].hashval >
|
||
|
|
be32_to_cpu(nodehdr.btree[entry].hashval)) {
|
||
|
|
do_warn(
|
||
|
|
_("%s block hashvalue inconsistency, expected > %u / saw %u\n"),
|
||
|
|
--
|
||
|
|
1.8.3.1
|
||
|
|
|