db: increase metadump's default overly long extent discard threshold
PATCH v2 1/1 db: increase metadump's default overly long extent discard threshold
Back in 88b8e1d6d7 ("Make xfs_metadump more robust against bad data"), metadump grew the ability to ignore a directory extent if it was longer than 20 blocks. Presumably this was to protect metadump from dumping absurdly long extents resulting from bmbt corruption, but it's certainly possible to create a directory with an extent longer than 20 blocks. Hilariously, the discards happen with no warning unless the caller explicitly set -w.
This was raised to 1000 blocks in 7431d134fe8 ("Increase default maximum extent size for xfs_metadump when copying..."), but it's still possible to create a directory with an extent longer than 1000 blocks.
Increase the threshold to MAXEXTLEN blocks because it's totally valid for the filesystem to create extents up to that length.
---
v2: update manpage
--- db/metadump.c | 2 +- man/man8/xfs_metadump.8 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
db/metadump.c +1 -1
@@ -32,7 +32,7 @@#include "field.h" #include "dir2.h" -#define DEFAULT_MAX_EXT_SIZE 1000 +#define DEFAULT_MAX_EXT_SIZE MAXEXTLEN/* * It's possible that multiple files in a directory (or attributes
man/man8/xfs_metadump.8 +1 -1
@@ -114,7 +114,7 @@ copied. .B \-m Set the maximum size of an allowed metadata extent. Extremely large metadata extents are likely to be corrupt, and will be skipped if they exceed -this value. The default size is 1000 blocks. +this value. The default size is 2097151 blocks. .TP .B \-o Disables obfuscation of file names and extended attributes.
Quoted 8 lines · Darrick J. Wong
Back in
88b8e1d6d7("Makexfs_metadumpmore robust against bad data"), metadump grew the ability to ignore a directory extent if it was longer than 20 blocks. Presumably this was to protect metadump from dumping absurdly long extents resulting from bmbt corruption, but it's certainly possible to create a directory with an extent longer than 20 blocks. Hilariously, the discards happen with no warning unless the caller explicitly set -w.
Quoted 45 lines
This was raised to 1000 blocks in
7431d134fe8("Increase default maximum extent size forxfs_metadumpwhen copying..."), but it's still possible to create a directory with an extent longer than 1000 blocks.Increase the threshold to MAXEXTLEN blocks because it's totally valid for the filesystem to create extents up to that length.
Signed-off-by Darrick J. Wong <[email protected]>---
v2: update manpage--- db/metadump.c | 2 +- man/man8/xfs_metadump.8 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)db/metadump.c +1
-1@@ -32,7 +32,7 @@#include "field.h" #include "dir2.h" -#define DEFAULT_MAX_EXT_SIZE 1000 +#define DEFAULT_MAX_EXT_SIZE MAXEXTLEN/* * It's possible that multiple files in a directory (or attributes man/man8/xfs_metadump.8 +1
-2@@ -114,7 +114,7 @@ copied. .B \-m Set the maximum size of an allowed metadata extent. Extremely large metadata extents are likely to be corrupt, and will be skipped if they exceed -this value. The default size is 1000 blocks. +this value. The default size is 2097151 blocks. .TP .B \-o Disables obfuscation of file names and extended attributes. --To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 1 line
Carlos