Unverified Commit 573bcae0 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!8130 v2 CVE-2021-47493

Merge Pull Request from: @ci-robot 
 
PR sync from: liwei <liwei728@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/P4DV47FWMGQTO34BVHU6LAV7XO6HLYML/ 
CVE-2021-47493

Gautham Ananthakrishna (1):
  ocfs2: fix race between searching chunks and release journal_head from
    buffer_head

Joseph Qi (2):
  ocfs2: fix a deadlock when commit trans
  jbd2: export jbd2_journal_[grab|put]_journal_head


-- 
2.25.1
 
https://gitee.com/src-openeuler/kernel/issues/I9RDCV 
 
Link:https://gitee.com/openeuler/kernel/pulls/8130

 

Reviewed-by: default avatarLiu YongQiang <liuyongqiang13@huawei.com>
Reviewed-by: default avatarzhangyi (F) <yi.zhang@huawei.com>
Reviewed-by: default avatarXie XiuQi <xiexiuqi@huawei.com>
Signed-off-by: default avatarZhang Changzhong <zhangchangzhong@huawei.com>
parents 24cc9754 c45d02ea
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2628,6 +2628,7 @@ struct journal_head *jbd2_journal_grab_journal_head(struct buffer_head *bh)
	jbd_unlock_bh_journal_head(bh);
	return jh;
}
EXPORT_SYMBOL(jbd2_journal_grab_journal_head);

static void __journal_remove_journal_head(struct buffer_head *bh)
{
@@ -2673,6 +2674,7 @@ void jbd2_journal_put_journal_head(struct journal_head *jh)
	} else
		jbd_unlock_bh_journal_head(bh);
}
EXPORT_SYMBOL(jbd2_journal_put_journal_head);

/*
 * Initialize jbd inode head
+5 −1
Original line number Diff line number Diff line
@@ -1266,12 +1266,14 @@ static int ocfs2_test_bg_bit_allocatable(struct buffer_head *bg_bh,
					 int nr)
{
	struct ocfs2_group_desc *bg = (struct ocfs2_group_desc *) bg_bh->b_data;
	struct journal_head *jh;
	int ret;

	if (ocfs2_test_bit(nr, (unsigned long *)bg->bg_bitmap))
		return 0;

	if (!buffer_jbd(bg_bh))
	jh = jbd2_journal_grab_journal_head(bg_bh);
	if (!jh)
		return 1;

	jbd_lock_bh_state(bg_bh);
@@ -1282,6 +1284,8 @@ static int ocfs2_test_bg_bit_allocatable(struct buffer_head *bg_bh,
		ret = 1;
	jbd_unlock_bh_state(bg_bh);

	jbd2_journal_put_journal_head(jh);

	return ret;
}