When writing my test for the i_size patches, I noticed that I was not actually failing without my patches as I should have been. This is because we only check if the inode record extent end is < isize, we don't check if the inode record extent start is > 0. Add this check to make sure we're catching holes that start at the beginning of the file. Signed-off-by: Josef Bacik <josef@xxxxxxxxxxxxxx> --- check/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/check/main.c b/check/main.c index 4115049a..22f4e24c 100644 --- a/check/main.c +++ b/check/main.c @@ -827,8 +827,9 @@ static void maybe_free_inode_rec(struct cache_tree *inode_cache, /* Orphan inodes don't have correct nbytes */ if (rec->nlink > 0 && rec->found_size != rec->nbytes) rec->errors |= I_ERR_FILE_NBYTES_WRONG; - if (rec->nlink > 0 && !no_holes && + if (rec->nlink > 0 && !no_holes && rec->isize && (rec->extent_end < rec->isize || + rec->extent_start != 0 || first_extent_gap(&rec->holes) < rec->isize)) rec->errors |= I_ERR_FILE_EXTENT_DISCOUNT; } -- 2.24.1
