lkml.org 
[lkml]   [2018]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 03/12] blkcg: convert blkg_lookup_create to find closest blkg
Hello,

On Thu, Sep 06, 2018 at 05:10:36PM -0400, Dennis Zhou wrote:
> @@ -2021,9 +2021,7 @@ int bio_associate_blkg(struct bio *bio, struct blkcg_gq *blkg)
> {
> if (unlikely(bio->bi_blkg))
> return -EBUSY;
> + bio->bi_blkg = blkg_try_get_closest(blkg);
> return 0;

It prolly would be a good idea to point out that the associated blkg
might not be the same one passed in. Maybe this gets cleared up later
in the series?

> @@ -298,14 +297,23 @@ struct blkcg_gq *__blkg_lookup_create(struct blkcg *blkcg,
> while (true) {
> struct blkcg *pos = blkcg;
> struct blkcg *parent = blkcg_parent(blkcg);
> -
> - while (parent && !__blkg_lookup(parent, q, false)) {
> + struct blkcg_gq *ret_blkg = NULL;
> +
> + while (parent) {
> + blkg = __blkg_lookup(parent, q, false);
> + if (blkg) {
> + /* remember closest blkg */
> + ret_blkg = blkg;
> + break;
> + }
> pos = parent;
> parent = blkcg_parent(parent);
> }
>
> blkg = blkg_create(pos, q, NULL);
> - if (pos == blkcg || IS_ERR(blkg))
> + if (IS_ERR(blkg))
> + return ret_blkg ?: q->root_blkg;

Why not ret_blkg here?

Thanks.

--
tejun

\
 
 \ /
  Last update: 2018-09-07 19:28    [W:0.102 / U:0.052 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site