• Tejun Heo's avatar
    blkcg: invoke blkcg_policy->pd_init() after parent is linked · db613670
    Tejun Heo authored
    Currently, when creating a new blkcg_gq, each policy's pd_init_fn() is
    invoked in blkg_alloc() before the parent is linked.  This makes it
    difficult for policies to perform initializations which are dependent
    on the parent.
    This patch moves pd_init_fn() invocations to blkg_create() after the
    parent blkg is linked where the new blkg is fully initialized.  As
    this means that blkg_free() can't assume that pd's are initialized,
    pd_exit_fn() invocations are moved to __blkg_release().  This
    guarantees that pd_exit_fn() is also invoked with fully initialized
    blkgs with valid parent pointers.
    This will help implementing hierarchy support in blk-throttle.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>