Whamcloud - gitweb
libext2fs: optimize ext2fs_convert_subcluster_bitmap()
For a bigalloc filesystem, converting the block bitmap from blocks
to chunks in ext2fs_convert_subcluster_bitmap() can take a long time
when the device is huge, because we test the bitmap
bit-by-bit using ext2fs_test_block_bitmap2().
Use ext2fs_find_first_set_block_bitmap2() which is more efficient
for mke2fs when the fs is mostly empty.
e2fsck can also benefit from this during pass1 block scanning.
Time taken for "mke2fs -O bigalloc,extent -C 131072 -b 4096" on a 1PB
device:
without patch:
real 27m49.457s
user 21m36.474s
sys 6m9.514s
with patch:
real 6m31.908s
user 0m1.806s
sys 6m29.697s
Signed-off-by: Li Dongyang <dongyangli@ddn.com>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>