From: Andreas Herrmann <aherrmann@suse.de>
To: Christoph Hellwig <hch@lst.de>
Cc: Tejun Heo <tj@kernel.org>, Jens Axboe <axboe@kernel.dk>,
linux-block@vger.kernel.org
Subject: Re: [PATCH 05/17] blk-cgroup: remove blkg_lookup_check
Date: Thu, 22 Sep 2022 16:16:29 +0200 [thread overview]
Message-ID: <YyxuPeXuThDhyLjG@suselix> (raw)
In-Reply-To: <20220921180501.1539876-6-hch@lst.de>
On Wed, Sep 21, 2022 at 08:04:49PM +0200, Christoph Hellwig wrote:
> The combinations of an error check with an ERR_PTR return and a lookup
> with a NULL return leads to ugly handling of the return values in the
> callers. Just open coding the check and the lookup is much simpler.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> block/blk-cgroup.c | 36 ++++++++++--------------------------
> 1 file changed, 10 insertions(+), 26 deletions(-)
Reviewed-by: Andreas Herrmann <aherrmann@suse.de>
> diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
> index d1216760d0255..1306112d76486 100644
> --- a/block/blk-cgroup.c
> +++ b/block/blk-cgroup.c
> @@ -602,25 +602,6 @@ u64 __blkg_prfill_u64(struct seq_file *sf, struct blkg_policy_data *pd, u64 v)
> }
> EXPORT_SYMBOL_GPL(__blkg_prfill_u64);
>
> -/* Performs queue bypass and policy enabled checks then looks up blkg. */
> -static struct blkcg_gq *blkg_lookup_check(struct blkcg *blkcg,
> - const struct blkcg_policy *pol,
> - struct request_queue *q)
> -{
> - struct blkcg_gq *blkg;
> -
> - WARN_ON_ONCE(!rcu_read_lock_held());
> - lockdep_assert_held(&q->queue_lock);
> -
> - if (!blkcg_policy_enabled(q, pol))
> - return ERR_PTR(-EOPNOTSUPP);
> -
> - blkg = blkg_lookup(blkcg, q);
> - if (blkg)
> - blkg_update_hint(blkcg, blkg);
> - return blkg;
> -}
> -
> /**
> * blkcg_conf_open_bdev - parse and open bdev for per-blkg config update
> * @inputp: input string pointer
> @@ -697,14 +678,16 @@ int blkg_conf_prep(struct blkcg *blkcg, const struct blkcg_policy *pol,
> rcu_read_lock();
> spin_lock_irq(&q->queue_lock);
>
> - blkg = blkg_lookup_check(blkcg, pol, q);
> - if (IS_ERR(blkg)) {
> - ret = PTR_ERR(blkg);
> + if (!blkcg_policy_enabled(q, pol)) {
> + ret = -EOPNOTSUPP;
> goto fail_unlock;
> }
>
> - if (blkg)
> + blkg = blkg_lookup(blkcg, q);
> + if (blkg) {
> + blkg_update_hint(blkcg, blkg);
> goto success;
> + }
>
> /*
> * Create blkgs walking down from blkcg_root to @blkcg, so that all
> @@ -740,14 +723,15 @@ int blkg_conf_prep(struct blkcg *blkcg, const struct blkcg_policy *pol,
> rcu_read_lock();
> spin_lock_irq(&q->queue_lock);
>
> - blkg = blkg_lookup_check(pos, pol, q);
> - if (IS_ERR(blkg)) {
> - ret = PTR_ERR(blkg);
> + if (!blkcg_policy_enabled(q, pol)) {
> blkg_free(new_blkg);
> + ret = -EOPNOTSUPP;
> goto fail_preloaded;
> }
>
> + blkg = blkg_lookup(pos, q);
> if (blkg) {
> + blkg_update_hint(pos, blkg);
> blkg_free(new_blkg);
> } else {
> blkg = blkg_create(pos, q, new_blkg);
> --
> 2.30.2
>
--
Regards,
Andreas
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nürnberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Martje Boudien Moerman
(HRB 36809, AG Nürnberg)
next prev parent reply other threads:[~2022-09-22 14:16 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-21 18:04 blk-cgroup cleanups Christoph Hellwig
2022-09-21 18:04 ` [PATCH 01/17] blk-cgroup: fix error unwinding in blkcg_init_queue Christoph Hellwig
2022-09-22 13:00 ` Andreas Herrmann
2022-09-21 18:04 ` [PATCH 02/17] blk-cgroup: remove blk_queue_root_blkg Christoph Hellwig
2022-09-22 13:03 ` Andreas Herrmann
2022-09-21 18:04 ` [PATCH 03/17] blk-cgroup: remove open coded blkg_lookup instances Christoph Hellwig
2022-09-22 13:17 ` Andreas Herrmann
2022-09-26 20:56 ` Tejun Heo
2022-09-21 18:04 ` [PATCH 04/17] blk-cgroup: cleanup the blkg_lookup family of functions Christoph Hellwig
2022-09-22 14:15 ` Andreas Herrmann
2022-09-26 20:58 ` Tejun Heo
2022-09-21 18:04 ` [PATCH 05/17] blk-cgroup: remove blkg_lookup_check Christoph Hellwig
2022-09-22 14:16 ` Andreas Herrmann [this message]
2022-09-26 21:18 ` Tejun Heo
2022-09-21 18:04 ` [PATCH 06/17] blk-cgroup: pass a gendisk to blkcg_init_queue and blkcg_exit_queue Christoph Hellwig
2022-09-22 13:34 ` Andreas Herrmann
2022-09-21 18:04 ` [PATCH 07/17] blk-ioprio: pass a gendisk to blk_ioprio_init and blk_ioprio_exit Christoph Hellwig
2022-09-22 13:38 ` Andreas Herrmann
2022-09-21 18:04 ` [PATCH 08/17] blk-iolatency: pass a gendisk to blk_iolatency_init Christoph Hellwig
2022-09-22 13:40 ` Andreas Herrmann
2022-09-27 1:19 ` Jens Axboe
2022-09-21 18:04 ` [PATCH 09/17] blk-iocost: simplify ioc_name Christoph Hellwig
2022-09-22 12:10 ` Andreas Herrmann
2022-09-21 18:04 ` [PATCH 10/17] blk-iocost: pass a gendisk to blk_iocost_init Christoph Hellwig
2022-09-22 12:11 ` Andreas Herrmann
2022-09-21 18:04 ` [PATCH 11/17] blk-iocost: cleanup ioc_qos_write Christoph Hellwig
2022-09-22 12:11 ` Andreas Herrmann
2022-09-21 18:04 ` [PATCH 12/17] blk-throttle: pass a gendisk to blk_throtl_init and blk_throtl_exit Christoph Hellwig
2022-09-23 6:38 ` Andreas Herrmann
2022-09-21 18:04 ` [PATCH 13/17] blk-throttle: pass a gendisk to blk_throtl_register_queue Christoph Hellwig
2022-09-23 6:39 ` Andreas Herrmann
2022-09-21 18:04 ` [PATCH 14/17] blk-throttle: pass a gendisk to blk_throtl_cancel_bios Christoph Hellwig
2022-09-23 6:42 ` Andreas Herrmann
2022-09-21 18:04 ` [PATCH 15/17] blk-cgroup: pass a gendisk to blkg_destroy_all Christoph Hellwig
2022-09-22 13:42 ` Andreas Herrmann
2022-09-21 18:05 ` [PATCH 16/17] blk-cgroup: pass a gendisk to blkcg_schedule_throttle Christoph Hellwig
2022-09-22 14:21 ` Andreas Herrmann
2022-09-21 18:05 ` [PATCH 17/17] blk-cgroup: pass a gendisk to the blkg allocation helpers Christoph Hellwig
2022-09-23 7:03 ` Andreas Herrmann
2022-09-26 21:26 ` blk-cgroup cleanups Tejun Heo
2022-09-27 1:19 ` Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YyxuPeXuThDhyLjG@suselix \
--to=aherrmann@suse.de \
--cc=axboe@kernel.dk \
--cc=hch@lst.de \
--cc=linux-block@vger.kernel.org \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox