Metadata clear_dirty_if_invalid() utility
Fix cacheline's metadata if it is dirty and invalid Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
This commit is contained in:
@@ -1566,6 +1566,31 @@ bool ocf_metadata_clear_valid_if_clean(struct ocf_cache *cache,
|
||||
}
|
||||
}
|
||||
|
||||
void ocf_metadata_clear_dirty_if_invalid(struct ocf_cache *cache,
|
||||
ocf_cache_line_t line, uint8_t start, uint8_t stop)
|
||||
{
|
||||
switch (cache->metadata.line_size) {
|
||||
case ocf_cache_line_size_4:
|
||||
return _ocf_metadata_clear_dirty_if_invalid_u8(cache,
|
||||
line, start, stop);
|
||||
case ocf_cache_line_size_8:
|
||||
return _ocf_metadata_clear_dirty_if_invalid_u16(cache,
|
||||
line, start, stop);
|
||||
case ocf_cache_line_size_16:
|
||||
return _ocf_metadata_clear_dirty_if_invalid_u32(cache,
|
||||
line, start, stop);
|
||||
case ocf_cache_line_size_32:
|
||||
return _ocf_metadata_clear_dirty_if_invalid_u64(cache,
|
||||
line, start, stop);
|
||||
case ocf_cache_line_size_64:
|
||||
return _ocf_metadata_clear_dirty_if_invalid_u128(cache,
|
||||
line, start, stop);
|
||||
case ocf_cache_line_size_none:
|
||||
default:
|
||||
ENV_BUG();
|
||||
}
|
||||
}
|
||||
|
||||
int ocf_metadata_init(struct ocf_cache *cache,
|
||||
ocf_cache_line_size_t cache_line_size)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user