ocfs2: unlock bh_state if bg check fails
[linux-2.6-microblaze.git] / fs / ocfs2 / suballoc.c
index 2d8d31c..d8f5f6c 100644 (file)
@@ -2438,6 +2438,8 @@ static int ocfs2_block_group_clear_bits(handle_t *handle,
        }
        le16_add_cpu(&bg->bg_free_bits_count, num_bits);
        if (le16_to_cpu(bg->bg_free_bits_count) > le16_to_cpu(bg->bg_bits)) {
+               if (undo_fn)
+                       jbd_unlock_bh_state(group_bh);
                return ocfs2_error(alloc_inode->i_sb, "Group descriptor # %llu has bit count %u but claims %u are freed. num_bits %d\n",
                                   (unsigned long long)le64_to_cpu(bg->bg_blkno),
                                   le16_to_cpu(bg->bg_bits),