Merge pull request #739 from robertbaldyga/fix-disable-cleaner-calculation

Fix metadata on disk size calculation when cleaner is disabled
This commit is contained in:
Robert Baldyga 2022-06-21 15:48:24 +02:00 committed by GitHub
commit f867559496
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 5 deletions

View File

@ -274,6 +274,9 @@ static int ocf_metadata_calculate_metadata_size(
i < metadata_segment_max; i++) { i < metadata_segment_max; i++) {
struct ocf_metadata_raw *raw = &ctrl->raw_desc[i]; struct ocf_metadata_raw *raw = &ctrl->raw_desc[i];
if (raw->disabled)
continue;
/* Setup number of entries */ /* Setup number of entries */
raw->entries raw->entries
= ocf_metadata_get_entries(i, cache_lines); = ocf_metadata_get_entries(i, cache_lines);
@ -690,8 +693,7 @@ int ocf_metadata_init_variable_size(struct ocf_cache *cache,
} }
if (i == metadata_segment_cleaning && cleaner_disabled) { if (i == metadata_segment_cleaning && cleaner_disabled) {
raw->entry_size = 0; raw->disabled = true;
raw->entries_in_page = 1;
continue; continue;
} }
@ -722,7 +724,9 @@ int ocf_metadata_init_variable_size(struct ocf_cache *cache,
*/ */
for (i = metadata_segment_variable_size_start; for (i = metadata_segment_variable_size_start;
i < metadata_segment_max; i++) { i < metadata_segment_max; i++) {
if (i == metadata_segment_cleaning && cleaner_disabled) struct ocf_metadata_raw *raw = &ctrl->raw_desc[i];
if (raw->disabled)
continue; continue;
if (i == metadata_segment_collision) { if (i == metadata_segment_collision) {
@ -737,7 +741,7 @@ int ocf_metadata_init_variable_size(struct ocf_cache *cache,
result |= ocf_metadata_segment_init( result |= ocf_metadata_segment_init(
&ctrl->segment[i], &ctrl->segment[i],
cache, cache,
&ctrl->raw_desc[i], raw,
lock_page, unlock_page, lock_page, unlock_page,
superblock); superblock);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright(c) 2012-2021 Intel Corporation * Copyright(c) 2012-2022 Intel Corporation
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -63,6 +63,8 @@ struct ocf_metadata_raw {
enum ocf_metadata_segment_id metadata_segment; /*!< Metadata segment */ enum ocf_metadata_segment_id metadata_segment; /*!< Metadata segment */
enum ocf_metadata_raw_type raw_type; /*!< RAW implementation type */ enum ocf_metadata_raw_type raw_type; /*!< RAW implementation type */
bool disabled; /*!< True if this raw container is disabled */
/** /**
* @name Metdata elements description * @name Metdata elements description
*/ */