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

!15708 f2fs: fix dereference of stale list iterator after loop body

parents 5b56c883 2690c88d
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -354,16 +354,19 @@ void f2fs_drop_inmem_page(struct inode *inode, struct page *page)
	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
	struct list_head *head = &fi->inmem_pages;
	struct inmem_pages *cur = NULL;
	struct inmem_pages *tmp;

	f2fs_bug_on(sbi, !IS_ATOMIC_WRITTEN_PAGE(page));

	mutex_lock(&fi->inmem_lock);
	list_for_each_entry(cur, head, list) {
		if (cur->page == page)
	list_for_each_entry(tmp, head, list) {
		if (tmp->page == page) {
			cur = tmp;
			break;
		}
	}

	f2fs_bug_on(sbi, list_empty(head) || cur->page != page);
	f2fs_bug_on(sbi, !cur);
	list_del(&cur->list);
	mutex_unlock(&fi->inmem_lock);