f2fs: fix cgroup writeback accounting with fs-layer encryption
Subsystems (2)
Eric Biggers
maintainerPATCH 1/1 f2fs: fix cgroup writeback accounting with fs-layer encryption
From: Eric Biggers <[email protected]>
commit 844545c51a5b2a524b22a2fe9d0b353b827d24b4 upstream.
When writing a page from an encrypted file that is using filesystem-layer encryption (not inline encryption), f2fs encrypts the pagecache page into a bounce page, then writes the bounce page.
It also passes the bounce page to wbc_account_cgroup_owner(). That's incorrect, because the bounce page is a newly allocated temporary page that doesn't have the memory cgroup of the original pagecache page. This makes wbc_account_cgroup_owner() not account the I/O to the owner of the pagecache page as it should.
Fix this by always passing the pagecache page towbc_account_cgroup_owner().
--- fs/f2fs/data.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
fs/f2fs/data.c +2 -2
@@ -464,7 +464,7 @@ int f2fs_submit_page_bio(struct f2fs_io_info *fio) }if (fio->io_wbc && !is_read_io (fio->op)) -wbc_account_io (fio->io_wbc, page,PAGE_SIZE ); +wbc_account_io (fio->io_wbc, fio->page,PAGE_SIZE );bio_set_op_attrs (bio, fio->op, fio->op_flags);
@@ -533,7 +533,7 @@ void f2fs_submit_page_write(struct f2fs_io_info *fio) }if (fio->io_wbc) -wbc_account_io (fio->io_wbc, bio_page,PAGE_SIZE ); +wbc_account_io (fio->io_wbc, fio->page,PAGE_SIZE ); io->last_block_in_bio = fio->new_blkaddr;f2fs_trace_ios (fio,0 );
Signature · 1 line
2.39.2
Quoted 24 lines · Eric Biggers
From: Eric Biggers <[email protected]>
commit
844545c51a5b2a524b22a2fe9d0b353b827d24b4upstream.When writing a page from an encrypted file that is using filesystem-layer encryption (not inline encryption), f2fs encrypts the pagecache page into a bounce page, then writes the bounce page.
It also passes the bounce page to
wbc_account_cgroup_owner(). That's incorrect, because the bounce page is a newly allocated temporary page that doesn't have the memory cgroup of the original pagecache page. This makeswbc_account_cgroup_owner()not account the I/O to the owner of the pagecache page as it should.Fix this by always passing the pagecache page to
wbc_account_cgroup_owner().Fixes 578c647879f7 ("f2fs: implement cgroup writeback support")Reported-by Matthew Wilcox (Oracle) <[email protected]>Signed-off-by Eric Biggers <[email protected]>Acked-by Tejun Heo <[email protected]>Reviewed-by Chao Yu <[email protected]>Signed-off-by Jaegeuk Kim <[email protected]>
Quoted 3 lines
--- fs/f2fs/data.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Now queued up, thanks.
greg k-h