]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit - block/cfq-iosched.c
cfq-iosched: simplify control flow in cfq_get_queue()
authorTejun Heo <tj@kernel.org>
Tue, 18 Aug 2015 21:54:57 +0000 (14:54 -0700)
committerJens Axboe <axboe@fb.com>
Tue, 18 Aug 2015 22:49:15 +0000 (15:49 -0700)
commit4ebc1c61d6185604c97fd0b0355ab668052044ab
tree366acca07997da745139dba40070eea624f768b9
parent5634cc2aa9aebc77bc862992e7805469dcf83dac
cfq-iosched: simplify control flow in cfq_get_queue()

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@kernel.org>
Acked-by: Jeff Moyer <jmoyer@redhat.com>
Cc: Vivek Goyal <vgoyal@redhat.com>
Cc: Arianna Avanzini <avanzini.arianna@gmail.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/cfq-iosched.c