punch command works incorrect in debugfs
Hi all,
I found a bug in debugfs that 'punch' command work incorrect for a indirect-based file. The bug can be triggered by the following commands, and it seems that the problem is in libext2fs library. I file this bug in mailing list because I have no time to look at it carefully and I doubt that this command is not used frequently.
[reproduce steps]
sudo mkfs.ext4 -O ^extent ${DEV}
sudo mount -t ext4 ${DEV} ${MNT}
sudo dd if=/dev/zero of=${MNT}/punch-file bs=4k count=16 sync
sudo umount ${MNT}
sudo debugfs ${DEV} -R 'stat punch-file'
sudo debugfs -w ${DEV} -R 'punch punch-file 4 6' sudo debugfs ${DEV} -R 'stat punch-file'
[expected result]
...
BLOCKS:
(0-3):34304-34307, (6-11):34310-34315, (IND):33793, (12-15):34316-34319
...
[wrong result]
...
BLOCKS:
(0-11):34304-34315, (IND):33793, (12-15):34316-34319
...
Regards,
- Zheng