• Tejun Heo's avatar
    blkcg: make root blkcg allocation use %GFP_KERNEL · 15974993
    Tejun Heo authored
    
    
    Currently, blkcg_activate_policy() depends on %GFP_ATOMIC allocation
    from __blkg_lookup_create() for root blkcg creation.  This could make
    policy fail unnecessarily.
    
    Make blkg_alloc() take @gfp_mask, __blkg_lookup_create() take an
    optional @new_blkg for preallocated blkg, and blkcg_activate_policy()
    preload radix tree and preallocate blkg with %GFP_KERNEL before trying
    to create the root blkg.
    
    v2: __blkg_lookup_create() was returning %NULL on blkg alloc failure
       instead of ERR_PTR() value.  Fixed.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    15974993