ext4: Fix hole punching for files with indirect blocks
Hole punching code for files with indirect blocks wrongly computed
number of blocks which need to be cleared when traversing the indirect
block tree. That could result in punching more blocks than actually
requested 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.
CC: stable@vger.kernel.org
Fixes: bee871a23a29ee8aacb012f2c33cc7b752ec61ad
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>