Reorganize remove-inacitve command

Don't remove inactive core if it has dirt cache lines assigned unless `force`
flag is specified.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
This commit is contained in:
Michal Mielewczyk
2021-04-12 13:46:57 +02:00
parent 8a8572d8bb
commit 4e680bb50a
6 changed files with 24 additions and 24 deletions

View File

@@ -1517,6 +1517,11 @@ int cache_mngt_remove_inactive_core(struct kcas_remove_inactive *cmd)
goto unlock;
}
if (ocf_mngt_core_is_dirty(core) && !cmd->force) {
result = -KCAS_ERR_INACTIVE_CORE_IS_DIRTY;
goto unlock;
}
/*
* Destroy exported object - in case of error during destruction of
* exported object, instead of trying rolling this back we rather

View File

@@ -126,6 +126,7 @@ struct kcas_remove_core {
struct kcas_remove_inactive {
uint16_t cache_id; /**< id of an running cache */
uint16_t core_id; /**< id core object to be removed */
bool force; /**< remove inactive core without flushing */
int ext_err_code;
};
@@ -599,7 +600,10 @@ enum kcas_error {
KCAS_ERR_WAITING_INTERRUPTED,
/** Core device is in active state */
KCAS_ERR_CORE_IN_ACTIVE_STATE
KCAS_ERR_CORE_IN_ACTIVE_STATE,
/** Inactive core has dirty data assigned */
KCAS_ERR_INACTIVE_CORE_IS_DIRTY
};
#endif