On Thu, 2018-08-09 at 12:56 -0700, Tejun Heo wrote:
> Hello,
> 
> On Thu, Aug 09, 2018 at 07:53:36AM -0700, Bart Van Assche wrote:
> > +/**
> > + * blkg_lookup - look up blkg for the specified request queue
> > + * @q: request_queue of interest
> > + *
> > + * Lookup blkg for @q at the root level. See also blkg_lookup().
> > + */
> > +static inline struct blkcg_gq *blkg_root_lookup(struct request_queue *q)
> > +{
> > +   struct blkcg_gq *blkg;
> > +
> > +   rcu_read_lock();
> > +   blkg = blkg_lookup(&blkcg_root, q);
> > +   rcu_read_unlock();
> > +
> > +   return blkg;
> > +}
> 
> So, root blkg is always available as long as the request_queue is
> alive.  Sth like the following would be simpler?
> 
> static inline struct blkcg_gq *blk_queue_root_blkg(struct request_queue *q)
> {
>       return q->root_blkg;
> }

That would not only be simpler, it would also avoid that blk_queue_root_blkg()
returns NULL if bypass mode is enabled and the request queue is still associated
with the block cgroup controller. How do you want to proceed with this change?

Bart.

Reply via email to