Re: [PATCH v2 1/2] blk-throtl: move WARN_ON_ONCE() from throtl_rb_first() to it's caller

From: Christoph Hellwig
Date: Tue Nov 30 2021 - 01:43:19 EST


On Tue, Nov 30, 2021 at 09:17:29AM +0800, Yu Kuai wrote:
> Prepare to reintroduce tg_drain_bios(), which will iterate until
> throtl_rb_first() return NULL.
>
> Signed-off-by: Yu Kuai <yukuai3@xxxxxxxxxx>
> ---
> block/blk-throttle.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/block/blk-throttle.c b/block/blk-throttle.c
> index 39bb6e68a9a2..f7244190cb2f 100644
> --- a/block/blk-throttle.c
> +++ b/block/blk-throttle.c
> @@ -502,7 +502,6 @@ throtl_rb_first(struct throtl_service_queue *parent_sq)
> struct rb_node *n;
>
> n = rb_first_cached(&parent_sq->pending_tree);
> - WARN_ON_ONCE(!n);
> if (!n)
> return NULL;
> return rb_entry_tg(n);
> @@ -521,8 +520,10 @@ static void update_min_dispatch_time(struct throtl_service_queue *parent_sq)
> struct throtl_grp *tg;
>
> tg = throtl_rb_first(parent_sq);
> - if (!tg)
> + if (!tg) {
> + WARN_ON_ONCE(1);
> return;

if (WARN_ON_ONCE(!tg))
return;

> tg = throtl_rb_first(parent_sq);
> - if (!tg)
> + if (!tg) {
> + WARN_ON_ONCE(1);
> break;
> + }

Same here.