Created attachment 23778 [details] ext3/balloc.c and ext4/balloc.c change to count number of descriptors blocks When computing number of blocks for group descriptors for a given group, the total number of blocks for group descriptors is returned in case META_BG is enabled and group is inside the first groups (such as block of its descriptor is below s_first_meta_bg). I think it should be limited to s_first_meta_bg. This behaviour is incoherent with e2fsprogs behaviour (see http://marc.info/?l=linux-ext4&m=125794126219545&w=2) and can lead to corruption in case performing e2fsck on a filesystem where an uninitialized block bitmap was initialized by kernel. I attach a proposed change, but: - I did not compiled, nor tried it. - it is for ext3 and ext4. - I am not sure it is enough: there is some other location where s_gdb_count is used and where perhaps ext4_bg_num_gdb should be used instead as in ext4_setup_system_zone (I do not understand the behaviour here, it seems to not take META_BG flag into account at all) or ex4_iget.
Thanks for the patch. It looks good but please look at Documentation/SubmittingPatches how a patch for kernel should look like (most notably it misses a Signed-off-by, it should be in a unified format and with a changelog). Also please create one patch for ext3 and one patch for ext4 since I will merge the ext3 part and Ted Tso takes care of ext4. Thanks.
Jan, I have a IMHO better set of patches which I plan to merge for ext4; it ends up simplifying the code, and makes it easier to read. I'll backport my ext4 fixes to ext3 and send them to you. It's on my todo list.
OK, I'll wait for your backport then. Thanks.