summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2023-07-07 12:42:38 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-09-13 10:42:39 +0300
commite5e0ec8ff16089a0801cd6a1748003697b6b901f (patch)
treefbb663af721b58683fcbbdda2fb1d419dd05e987
parent7db90dd1c5a45025cca496b743957abfa15022b3 (diff)
downloadlinux-e5e0ec8ff16089a0801cd6a1748003697b6b901f.tar.xz
block: cleanup queue_wc_store
[ Upstream commit c4e21bcd0f9d01f9c5d6c52007f5541871a5b1de ] Get rid of the local queue_wc_store variable and handling setting and clearing the QUEUE_FLAG_WC flag diretly instead the if / else if. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20230707094239.107968-2-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk> Stable-dep-of: 43c9835b144c ("block: don't allow enabling a cache on devices that don't support it") Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--block/blk-sysfs.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c
index e71b3b43927c..4f34525bafac 100644
--- a/block/blk-sysfs.c
+++ b/block/blk-sysfs.c
@@ -528,21 +528,13 @@ static ssize_t queue_wc_show(struct request_queue *q, char *page)
static ssize_t queue_wc_store(struct request_queue *q, const char *page,
size_t count)
{
- int set = -1;
-
if (!strncmp(page, "write back", 10))
- set = 1;
+ blk_queue_flag_set(QUEUE_FLAG_WC, q);
else if (!strncmp(page, "write through", 13) ||
!strncmp(page, "none", 4))
- set = 0;
-
- if (set == -1)
- return -EINVAL;
-
- if (set)
- blk_queue_flag_set(QUEUE_FLAG_WC, q);
- else
blk_queue_flag_clear(QUEUE_FLAG_WC, q);
+ else
+ return -EINVAL;
return count;
}