]> git.baikalelectronics.ru Git - kernel.git/commit
ocfs2: fix BUG when calculate new backup super
authorJoseph Qi <joseph.qi@huawei.com>
Tue, 29 Dec 2015 22:54:06 +0000 (14:54 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 30 Dec 2015 01:45:49 +0000 (17:45 -0800)
commit251dd331438f551f65cd50c1b9a5520116f5939c
tree19ba4dcdb5ec895f8f0a45d24481910376068d4c
parent88dff085320fae44b2438b02569e0b98450fd721
ocfs2: fix BUG when calculate new backup super

When resizing, it firstly extends the last gd.  Once it should backup
super in the gd, it calculates new backup super and update the
corresponding value.

But it currently doesn't consider the situation that the backup super is
already done.  And in this case, it still sets the bit in gd bitmap and
then decrease from bg_free_bits_count, which leads to a corrupted gd and
trigger the BUG in ocfs2_block_group_set_bits:

    BUG_ON(le16_to_cpu(bg->bg_free_bits_count) < num_bits);

So check whether the backup super is done and then do the updates.

Signed-off-by: Joseph Qi <joseph.qi@huawei.com>
Reviewed-by: Jiufei Xue <xuejiufei@huawei.com>
Reviewed-by: Yiwen Jiang <jiangyiwen@huawei.com>
Cc: Mark Fasheh <mfasheh@suse.de>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/ocfs2/resize.c