writeback: memcg dirty_throttle_control should be initialized with wb->memcg_completions
authorTejun Heo <tj@kernel.org>
Tue, 29 Sep 2015 16:47:53 +0000 (12:47 -0400)
committerJens Axboe <axboe@fb.com>
Mon, 12 Oct 2015 16:31:13 +0000 (10:31 -0600)
commitd60d1bddd5b642711a237511845853755b25bf1f
treee5790b6d703d30fcd8c92f5760fdcc0e165fc912
parentb817525a4a80c04e4ca44192d97a1ffa9f2be572
writeback: memcg dirty_throttle_control should be initialized with wb->memcg_completions

MDTC_INIT() is used to initialize dirty_throttle_control for memcg
domains.  It used DTC_INIT_COMMON() to initialized mdtc->wb and
->wb_completions which is incorrect as DTC_INIT_COMMON() sets the
latter to wb->completions instead of wb->memcg_completions.  This can
lead to wildly incorrect results when calculating the proportion of
dirty memory the memcg domain should get.

Remove DTC_INIT_COMMON() and update MDTC_INIT() to initialize
mdtc->wb_completions to wb->memcg_completions.

Signed-off-by: Tejun Heo <tj@kernel.org>
Fixes: c2aa723a6093 ("writeback: implement memcg writeback domain based throttling")
Signed-off-by: Jens Axboe <axboe@fb.com>
mm/page-writeback.c