mirror of https://github.com/vitalif/e2fsprogs
a30a4e93f3
We rely on a nasty hack to adjust the free block count where we pass signed value into ext2fs_free_blocks_count_add(), which takes an 64-bit unsigned value, and relies on overflow and C's signed->unsigned semantics to do the subtraction. This works, so long as a 64-bit signed value is used. Unfortunately, ext2fs_block_alloc_stats2() and ext2fs_block_alloc_stats_range(), this is not true, so on a 64-bit file system, the free blocks accounting can get screwed up. A simple way to demonstrate the problem is: mke2fs -F -t ext4 -O 64bit /tmp/foo.img 1M e2fsck -fy /tmp/foo.img ... which will result in the following e2fsck complaint: Pass 5: Checking group summary information Free blocks count wrong (4294968278, counted=982). Fix? yes Signed-off-by: Theodore Ts'o <tytso@mit.edu> |
||
---|---|---|
.. | ||
expect.1 | ||
script |