This bug was reported by Lukas Czerner while working on a
new patch to add discard support for loop devices using
punch hole.
The bug is happens because the data type for logical blocks is
not large enough to calculate the block offset for holes that are
very large. This bug is resolved by casting the ext4_lblk_t
to an loff_t before calculating the byte offset of the block.