From 4c431bf71c5426b5d1050daf2ec2aaa2761ac279 Mon Sep 17 00:00:00 2001 From: Robert Baldyga Date: Sun, 27 Mar 2022 21:31:29 +0200 Subject: [PATCH] Return error on cache mode change in standby mode Changing cache mode to the same mode is a special case that in OCL is handled on the kernel level, without calling an OCF API. In result it seemed to succeed even in standby mode, which should return an error. Explicitly check for standby to return an appropriate error code. Signed-off-by: Robert Baldyga --- modules/cas_cache/layer_cache_management.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/cas_cache/layer_cache_management.c b/modules/cas_cache/layer_cache_management.c index b5ce52a..bb8f376 100644 --- a/modules/cas_cache/layer_cache_management.c +++ b/modules/cas_cache/layer_cache_management.c @@ -2792,6 +2792,11 @@ int cache_mngt_set_cache_mode(const char *cache_name, size_t name_len, if (result) return result; + if (ocf_cache_is_standby(cache)) { + result = -OCF_ERR_CACHE_STANDBY; + goto put; + } + old_mode = ocf_cache_get_mode(cache); if (old_mode == mode) { printk(KERN_INFO "%s is in requested cache mode already\n", cache_name);