Skip to content

Commit

Permalink
Add missing ocf_cache_mode_t to ocf_req_cache_mode_t conversions
Browse files Browse the repository at this point in the history
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
  • Loading branch information
robertbaldyga committed Jul 5, 2024
1 parent ff0551b commit d7fe7c0
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 8 deletions.
14 changes: 10 additions & 4 deletions src/engine/cache_engine.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
* Copyright(c) 2012-2022 Intel Corporation
* Copyright(c) 2024 Huawei Technologies
* SPDX-License-Identifier: BSD-3-Clause
*/

Expand Down Expand Up @@ -201,6 +202,8 @@ bool ocf_fallback_pt_is_on(ocf_cache_t cache)
void ocf_resolve_effective_cache_mode(ocf_cache_t cache,
ocf_core_t core, struct ocf_request *req)
{
ocf_cache_mode_t cache_mode;

if (req->d2c) {
req->cache_mode = ocf_req_cache_mode_d2c;
return;
Expand Down Expand Up @@ -228,10 +231,13 @@ void ocf_resolve_effective_cache_mode(ocf_cache_t cache,
return;
}

req->cache_mode = ocf_user_part_get_cache_mode(cache,
ocf_user_part_class2id(cache, req->part_id));
if (!ocf_cache_mode_is_valid(req->cache_mode))
req->cache_mode = cache->conf_meta->cache_mode;
cache_mode = ocf_user_part_get_cache_mode(cache,
ocf_user_part_class2id(cache, req->part_id));

if (!ocf_cache_mode_is_valid(cache_mode))
cache_mode = cache->conf_meta->cache_mode;

req->cache_mode = ocf_cache_mode_to_req_cache_mode(cache_mode);

if (req->rw == OCF_WRITE &&
ocf_req_cache_mode_has_lazy_write(req->cache_mode) &&
Expand Down
7 changes: 7 additions & 0 deletions src/engine/cache_engine.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
* Copyright(c) 2012-2022 Intel Corporation
* Copyright(c) 2024 Huawei Technologies
* SPDX-License-Identifier: BSD-3-Clause
*/

Expand Down Expand Up @@ -32,6 +33,12 @@ typedef enum {
ocf_req_cache_mode_max,
} ocf_req_cache_mode_t;

static inline ocf_req_cache_mode_t ocf_cache_mode_to_req_cache_mode(
ocf_cache_mode_t mode)
{
return (ocf_req_cache_mode_t)mode;
}

typedef int (*ocf_engine_cb)(struct ocf_request *req);

struct ocf_io_if {
Expand Down
12 changes: 8 additions & 4 deletions src/mngt/ocf_mngt_cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -3435,14 +3435,17 @@ static void _cache_mngt_update_initial_dirty_clines(ocf_cache_t cache)
static int _cache_mngt_set_cache_mode(ocf_cache_t cache, ocf_cache_mode_t mode)
{
ocf_cache_mode_t mode_old = cache->conf_meta->cache_mode;
ocf_req_cache_mode_t req_mode = ocf_cache_mode_to_req_cache_mode(mode);
ocf_req_cache_mode_t req_mode_old =
ocf_cache_mode_to_req_cache_mode(mode_old);

/* Check if IO interface type is valid */
if (!ocf_cache_mode_is_valid(mode))
return -OCF_ERR_INVAL;

if (mode == mode_old) {
ocf_cache_log(cache, log_info, "Cache mode '%s' is already set\n",
ocf_get_io_iface_name(mode));
ocf_get_io_iface_name(req_mode));
return 0;
}

Expand All @@ -3454,14 +3457,15 @@ static int _cache_mngt_set_cache_mode(ocf_cache_t cache, ocf_cache_mode_t mode)
}

ocf_cache_log(cache, log_info, "Changing cache mode from '%s' to '%s' "
"successful\n", ocf_get_io_iface_name(mode_old),
ocf_get_io_iface_name(mode));
"successful\n", ocf_get_io_iface_name(req_mode_old),
ocf_get_io_iface_name(req_mode));

return 0;
}

int ocf_mngt_cache_set_mode(ocf_cache_t cache, ocf_cache_mode_t mode)
{
ocf_req_cache_mode_t req_mode = ocf_cache_mode_to_req_cache_mode(mode);
int result;

OCF_CHECK_NULL(cache);
Expand All @@ -3478,7 +3482,7 @@ int ocf_mngt_cache_set_mode(ocf_cache_t cache, ocf_cache_mode_t mode)
result = _cache_mngt_set_cache_mode(cache, mode);

if (result) {
const char *name = ocf_get_io_iface_name(mode);
const char *name = ocf_get_io_iface_name(req_mode);

ocf_cache_log(cache, log_err, "Setting cache mode '%s' "
"failed\n", name);
Expand Down

0 comments on commit d7fe7c0

Please sign in to comment.