All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhang Yi <yi.zhang@huawei.com>
To: <linux-block@vger.kernel.org>
Cc: <axboe@kernel.dk>, <jbacik@fb.com>, <yi.zhang@huawei.com>,
	<yukuai3@huawei.com>
Subject: [PATCH 2/2] blk-wbt: make sure throttle is enabled properly
Date: Sat, 19 Jun 2021 17:37:00 +0800	[thread overview]
Message-ID: <20210619093700.920393-3-yi.zhang@huawei.com> (raw)
In-Reply-To: <20210619093700.920393-1-yi.zhang@huawei.com>

After commit a79050434b45 ("blk-rq-qos: refactor out common elements of
blk-wbt"), if throttle was disabled by wbt_disable_default(), we could
not enable again, fix this by set enable_state back to
WBT_STATE_ON_DEFAULT.

Fixes: a79050434b45 ("blk-rq-qos: refactor out common elements of blk-wbt")
Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
---
 block/blk-wbt.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/block/blk-wbt.c b/block/blk-wbt.c
index b098ac6a84f0..f5e5ac915bf7 100644
--- a/block/blk-wbt.c
+++ b/block/blk-wbt.c
@@ -637,9 +637,13 @@ void wbt_set_write_cache(struct request_queue *q, bool write_cache_on)
 void wbt_enable_default(struct request_queue *q)
 {
 	struct rq_qos *rqos = wbt_rq_qos(q);
+
 	/* Throttling already enabled? */
-	if (rqos)
+	if (rqos) {
+		if (RQWB(rqos)->enable_state == WBT_STATE_OFF_DEFAULT)
+			RQWB(rqos)->enable_state = WBT_STATE_ON_DEFAULT;
 		return;
+	}
 
 	/* Queue not registered? Maybe shutting down... */
 	if (!blk_queue_registered(q))
-- 
2.31.1


  parent reply	other threads:[~2021-06-19  9:28 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-19  9:36 [PATCH 0/2] blk-wbt: fix two wbt enable problems Zhang Yi
2021-06-19  9:36 ` [PATCH 1/2] blk-wbt: introduce a new disable state to prevent false positive by rwb_enabled() Zhang Yi
2021-06-19  9:37 ` Zhang Yi [this message]
2021-06-21 16:07 ` [PATCH 0/2] blk-wbt: fix two wbt enable problems 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=20210619093700.920393-3-yi.zhang@huawei.com \
    --to=yi.zhang@huawei.com \
    --cc=axboe@kernel.dk \
    --cc=jbacik@fb.com \
    --cc=linux-block@vger.kernel.org \
    --cc=yukuai3@huawei.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.