• Dennis Zhou (Facebook)'s avatar
    blkcg: use tryget logic when associating a blkg with a bio · 31118850
    Dennis Zhou (Facebook) authored
    There is a very small change a bio gets caught up in a really
    unfortunate race between a task migration, cgroup exiting, and itself
    trying to associate with a blkg. This is due to css offlining being
    performed after the css->refcnt is killed which triggers removal of
    blkgs that reach their blkg->refcnt of 0.
    
    To avoid this, association with a blkg should use tryget and fallback to
    using the root_blkg.
    
    Fixes: 08e18eab ("block: add bi_blkg to the bio for cgroups")
    Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarDennis Zhou <dennisszhou@gmail.com>
    Cc: Jiufei Xue <jiufei.xue@linux.alibaba.com>
    Cc: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Josef Bacik <josef@toxicpanda.com>
    Cc: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    31118850
blk-throttle.c 68.6 KB