[PATCH 12/14 V2] xfs_repair: address never-true tests in repair/bmap.c on 64 bit
Eric Sandeen
sandeen at sandeen.net
Wed Apr 9 09:36:54 CDT 2014
The test "if (new_naexts > BLKMAP_NEXTS_MAX)" is never true
on a 64-bit platform; new_naexts is an int, and BLKMAP_NEXTS_MAX
is INT_MAX. So just wrap the whole thing in the #ifdef.
Signed-off-by: Eric Sandeen <sandeen at redhat.com>
---
V2: Fix typo in comment in first hunk
repair/bmap.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/repair/bmap.c b/repair/bmap.c
index 85d66dc..b81efb9 100644
--- a/repair/bmap.c
+++ b/repair/bmap.c
@@ -47,16 +47,16 @@ blkmap_alloc(
if (nex < 1)
nex = 1;
+#if (BITS_PER_LONG == 32) /* on 64-bit platforms this is never true */
if (nex > BLKMAP_NEXTS_MAX) {
-#if (BITS_PER_LONG == 32)
do_warn(
_("Number of extents requested in blkmap_alloc (%d) overflows 32 bits.\n"
"If this is not a corruption, then you will need a 64 bit system\n"
"to repair this filesystem.\n"),
nex);
-#endif
return NULL;
}
+#endif
key = whichfork ? ablkmap_key : dblkmap_key;
blkmap = pthread_getspecific(key);
@@ -267,15 +267,15 @@ blkmap_grow(
ASSERT(pthread_getspecific(key) == blkmap);
}
+#if (BITS_PER_LONG == 32) /* on 64-bit platforms this is never true */
if (new_naexts > BLKMAP_NEXTS_MAX) {
-#if (BITS_PER_LONG == 32)
do_error(
_("Number of extents requested in blkmap_grow (%d) overflows 32 bits.\n"
"You need a 64 bit system to repair this filesystem.\n"),
new_naexts);
-#endif
return NULL;
}
+#endif
if (new_naexts <= 0) {
do_error(
_("Number of extents requested in blkmap_grow (%d) overflowed the\n"
More information about the xfs
mailing list