Hole punching code for files with indirect blocks wrongly computednumber of blocks which need to be cleared when traversing the indirectblock tree. That could result in punching more blocks than actuallyrequested and thus effectively cause a data loss. For example:

fallocate -n -p 10240000 4096

will punch the range 10240000 - 12632064 instead of the range 1024000 -10244096. Fix the calculation.