Re: [PATCH 1/8] cfq-iosched: simplify control flow in cfq_get_queue()

From: Jeff Moyer
Date: Mon Jun 08 2015 - 14:37:05 EST


Tejun Heo <tj@xxxxxxxxxx> writes:

> cfq_get_queue()'s control flow looks like the following.
>
> async_cfqq = NULL;
> cfqq = NULL;
>
> if (!is_sync) {
> ...
> async_cfqq = ...;
> cfqq = *async_cfqq;
> }
>
> if (!cfqq)
> cfqq = ...;
>
> if (!is_sync && !(*async_cfqq))
> ...;
>
> The only thing the local variable init, the second if, and the
> async_cfqq test in the third if achieves is to skip cfqq creation and
> installation if *async_cfqq was already non-NULL. This is needlessly
> complicated with different tests examining the same condition.
> Simplify it to the following.
>
> if (!is_sync) {
> ...
> async_cfqq = ...;
> cfqq = *async_cfqq;
> if (cfqq)
> goto out;
> }
>
> cfqq = ...;
>
> if (!is_sync)
> ...;
> out:
>
> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
> Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>

Acked-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/