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

!8827 v2 iomap: fix sub-page not set dirty state

Merge Pull Request from: @ci-robot 
 
PR sync from: Long Li <leo.lilong@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/K4GLDNMM4BMC45EH7N6IWPYQMQVGXLL5/ 
This patch fix sub-page not set dirty stat issuse.

Long Li (2):
  Revert "iomap: Don't create iomap_page objects in
    iomap_page_mkwrite_actor"
  iomap: Ensure sub-page dirty state is set during mmap writes


-- 
2.31.1
 
https://gitee.com/openeuler/kernel/issues/I9UNQS 
 
Link:https://gitee.com/openeuler/kernel/pulls/8827

 

Reviewed-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
Reviewed-by: default avatarYu Kuai <yukuai3@huawei.com>
Signed-off-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
parents 73d7383a ab70155b
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -158,9 +158,6 @@ iomap_set_range_dirty(struct page *page, unsigned int off, unsigned int len)
	if (PageError(page))
		return;

	if (len)
		iomap_set_page_dirty(page);

	if (!page_has_private(page))
		return;

@@ -757,6 +754,7 @@ static size_t __iomap_write_end(struct inode *inode, loff_t pos, size_t len,
	if (unlikely(copied < len && !PageUptodate(page)))
		return 0;
	iomap_set_range_uptodate(page, offset_in_page(pos), len);
	iomap_set_page_dirty(page);
	iomap_set_range_dirty(page, offset_in_page(pos), len);
	return copied;
}
@@ -1073,7 +1071,9 @@ iomap_page_mkwrite_actor(struct inode *inode, loff_t pos, loff_t length,
		block_commit_write(page, 0, length);
	} else {
		WARN_ON_ONCE(!PageUptodate(page));
		iomap_page_create(inode, page);
		set_page_dirty(page);
		iomap_set_range_dirty(page, offset_in_page(pos), length);
	}

	return length;