On buggy file systems, fallocate() can return EINVAL for unaligned accesses. Improve the situation by ignoring this for PUNCH_HOLE, too (but we also print out an error message in this case now, since PUNCH_HOLE should really never return EINVAL according to the man page). The second patch reworks the handling for ZERO_RANGE a little bit so that we now also try the other fallbacks in this case now.
Thomas Huth (2): block/file-posix: Fix problem with fallocate(PUNCH_HOLE) on GPFS block/file-posix: Try other fallbacks after invalid FALLOC_FL_ZERO_RANGE block/file-posix.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) -- 2.27.0