Re: [PATCH -next 1/6] blk-wbt: fix that wbt can't be disabled by default

From: Christoph Hellwig
Date: Thu May 11 2023 - 11:19:30 EST


On Thu, May 11, 2023 at 09:45:04AM +0800, Yu Kuai wrote:
> @@ -730,8 +730,9 @@ void wbt_enable_default(struct gendisk *disk)
> {
> struct request_queue *q = disk->queue;
> struct rq_qos *rqos;
> - bool disable_flag = q->elevator &&
> - test_bit(ELEVATOR_FLAG_DISABLE_WBT, &q->elevator->flags);
> + bool disable_flag = (q->elevator &&
> + test_bit(ELEVATOR_FLAG_DISABLE_WBT, &q->elevator->flags)) ||
> + !IS_ENABLED(CONFIG_BLK_WBT_MQ);

Not really new in your patch, but I find the logic here very confusing.
First the disable_flag really should be enable instead, as that's how
it's actually checked, and then spelling out the conditions a bit more
would really help readability. E.g.

bool enabled = IS_ENABLED(CONFIG_BLK_WBT_MQ);

if (q->elevator &&
test_bit(ELEVATOR_FLAG_DISABLE_WBT, &q->elevator->flags))
enable = false;