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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user