f2fs: fix cgroup writeback accounting with fs-layer encryption
authorEric Biggers <ebiggers@google.com>
Fri, 3 Feb 2023 01:02:39 +0000 (17:02 -0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 6 Feb 2023 03:34:21 +0000 (19:34 -0800)
commit844545c51a5b2a524b22a2fe9d0b353b827d24b4
tree196374b586acfbe508a43805cc9a4206a904da79
parentb03a41a495df35f8e8d25220878bd6b8472d9396
f2fs: fix cgroup writeback accounting with fs-layer encryption

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 to
wbc_account_cgroup_owner().

Fixes: 578c647879f7 ("f2fs: implement cgroup writeback support")
Cc: stable@vger.kernel.org
Reported-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Acked-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/data.c