memcg: writeback: use memcg->cgwb_list directly
mem_cgroup_cgwb_list is a very simple wrapper and it will never be used outside of code under CONFIG_CGROUP_WRITEBACK. so use memcg->cgwb_list directly. Link: http://lkml.kernel.org/r/1524406173-212182-1-git-send-email-wanglong19@meituan.com Signed-off-by: Wang Long <wanglong19@meituan.com> Reviewed-by: Jan Kara <jack@suse.cz> Acked-by: Tejun Heo <tj@kernel.org> Acked-by: Michal Hocko <mhocko@suse.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
12ba780d64
commit
9ccc361716
|
@ -1097,7 +1097,6 @@ static inline void dec_lruvec_page_state(struct page *page,
|
||||||
|
|
||||||
#ifdef CONFIG_CGROUP_WRITEBACK
|
#ifdef CONFIG_CGROUP_WRITEBACK
|
||||||
|
|
||||||
struct list_head *mem_cgroup_cgwb_list(struct mem_cgroup *memcg);
|
|
||||||
struct wb_domain *mem_cgroup_wb_domain(struct bdi_writeback *wb);
|
struct wb_domain *mem_cgroup_wb_domain(struct bdi_writeback *wb);
|
||||||
void mem_cgroup_wb_stats(struct bdi_writeback *wb, unsigned long *pfilepages,
|
void mem_cgroup_wb_stats(struct bdi_writeback *wb, unsigned long *pfilepages,
|
||||||
unsigned long *pheadroom, unsigned long *pdirty,
|
unsigned long *pheadroom, unsigned long *pdirty,
|
||||||
|
|
|
@ -557,7 +557,7 @@ static int cgwb_create(struct backing_dev_info *bdi,
|
||||||
memcg = mem_cgroup_from_css(memcg_css);
|
memcg = mem_cgroup_from_css(memcg_css);
|
||||||
blkcg_css = cgroup_get_e_css(memcg_css->cgroup, &io_cgrp_subsys);
|
blkcg_css = cgroup_get_e_css(memcg_css->cgroup, &io_cgrp_subsys);
|
||||||
blkcg = css_to_blkcg(blkcg_css);
|
blkcg = css_to_blkcg(blkcg_css);
|
||||||
memcg_cgwb_list = mem_cgroup_cgwb_list(memcg);
|
memcg_cgwb_list = &memcg->cgwb_list;
|
||||||
blkcg_cgwb_list = &blkcg->cgwb_list;
|
blkcg_cgwb_list = &blkcg->cgwb_list;
|
||||||
|
|
||||||
/* look up again under lock and discard on blkcg mismatch */
|
/* look up again under lock and discard on blkcg mismatch */
|
||||||
|
@ -736,7 +736,7 @@ static void cgwb_bdi_unregister(struct backing_dev_info *bdi)
|
||||||
*/
|
*/
|
||||||
void wb_memcg_offline(struct mem_cgroup *memcg)
|
void wb_memcg_offline(struct mem_cgroup *memcg)
|
||||||
{
|
{
|
||||||
struct list_head *memcg_cgwb_list = mem_cgroup_cgwb_list(memcg);
|
struct list_head *memcg_cgwb_list = &memcg->cgwb_list;
|
||||||
struct bdi_writeback *wb, *next;
|
struct bdi_writeback *wb, *next;
|
||||||
|
|
||||||
spin_lock_irq(&cgwb_lock);
|
spin_lock_irq(&cgwb_lock);
|
||||||
|
|
|
@ -3562,11 +3562,6 @@ static int mem_cgroup_oom_control_write(struct cgroup_subsys_state *css,
|
||||||
|
|
||||||
#ifdef CONFIG_CGROUP_WRITEBACK
|
#ifdef CONFIG_CGROUP_WRITEBACK
|
||||||
|
|
||||||
struct list_head *mem_cgroup_cgwb_list(struct mem_cgroup *memcg)
|
|
||||||
{
|
|
||||||
return &memcg->cgwb_list;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int memcg_wb_domain_init(struct mem_cgroup *memcg, gfp_t gfp)
|
static int memcg_wb_domain_init(struct mem_cgroup *memcg, gfp_t gfp)
|
||||||
{
|
{
|
||||||
return wb_domain_init(&memcg->cgwb_domain, gfp);
|
return wb_domain_init(&memcg->cgwb_domain, gfp);
|
||||||
|
|
Loading…
Reference in New Issue