4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 3d65ae4634ed8350aee98a4e6f4e41fe40c7d282 ]
inode struct members that track cgroup writeback information should be reinitialized when inode gets allocated from kmem_cache. Otherwise, their values remain and get used by the new inode.
Signed-off-by: Tahsin Erdogan tahsin@google.com Acked-by: Tejun Heo tj@kernel.org Fixes: d10c80955265 ("writeback: implement foreign cgroup inode bdi_writeback switching") Signed-off-by: Jens Axboe axboe@fb.com Signed-off-by: Sasha Levin sashal@kernel.org --- fs/inode.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/fs/inode.c b/fs/inode.c index a39c2724d8a0..b5c3a6473aaa 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -154,6 +154,12 @@ int inode_init_always(struct super_block *sb, struct inode *inode) inode->i_rdev = 0; inode->dirtied_when = 0;
+#ifdef CONFIG_CGROUP_WRITEBACK + inode->i_wb_frn_winner = 0; + inode->i_wb_frn_avg_time = 0; + inode->i_wb_frn_history = 0; +#endif + if (security_inode_alloc(inode)) goto out; spin_lock_init(&inode->i_lock);