Skip to content
  • Tejun Heo's avatar
    blkcg: kill the mind-bending blkg->dev · 7a4dd281
    Tejun Heo authored
    
    
    blkg->dev is dev_t recording the device number of the block device for
    the associated request_queue.  It is used to identify the associated
    block device when printing out configuration or stats.
    
    This is redundant to begin with.  A blkg is an association between a
    cgroup and a request_queue and it of course is possible to reach
    request_queue from blkg and synchronization conventions are in place
    for safe q dereferencing, so this shouldn't be necessary from the
    beginning.  Furthermore, it's initialized by sscanf()ing the device
    name of backing_dev_info.  The mind boggles.
    
    Anyways, if blkg is visible under rcu lock, we *know* that the
    associated request_queue hasn't gone away yet and its bdi is
    registered and alive - blkg can't be created for request_queue which
    hasn't been fully initialized and it can't go away before blkg is
    removed.
    
    Let stat and conf read functions get device name from
    blkg->q->backing_dev_info.dev and pass it down to printing functions
    and remove blkg->dev.
    
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    7a4dd281