From 921c30674e9bc719e7c2747deb6deb04be2adb4b Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" <email@example.com> Date: Thu, 9 Nov 2017 11:35:22 -0600 Subject: [PATCH] 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. Signed-off-by: Darrick J. Wong <firstname.lastname@example.org> Reviewed-by: Carlos Maiolino <email@example.com> Signed-off-by: Eric Sandeen <firstname.lastname@example.org> --- db/metadump.c | 2 +- man/man8/xfs_metadump.8 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Index: xfsprogs-4.5.0/db/metadump.c =================================================================== --- xfsprogs-4.5.0.orig/db/metadump.c +++ xfsprogs-4.5.0/db/metadump.c @@ -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 Index: xfsprogs-4.5.0/man/man8/xfs_metadump.8 =================================================================== --- xfsprogs-4.5.0.orig/man/man8/xfs_metadump.8 +++ xfsprogs-4.5.0/man/man8/xfs_metadump.8 @@ -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.