Error handling for env_rwsem_init added
Signed-off-by: Michal Rakowski <michal.rakowski@intel.com>
This commit is contained in:
parent
b78557a2cc
commit
2575be83fa
@ -302,11 +302,16 @@ int cleaning_policy_acp_initialize(struct ocf_cache *cache,
|
|||||||
ocf_cache_log(cache, log_err, "acp context allocation error\n");
|
ocf_cache_log(cache, log_err, "acp context allocation error\n");
|
||||||
return -OCF_ERR_NO_MEM;
|
return -OCF_ERR_NO_MEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = env_rwsem_init(&acp->chunks_lock);
|
||||||
|
if (err) {
|
||||||
|
env_vfree(acp);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
cache->cleaner.cleaning_policy_context = acp;
|
cache->cleaner.cleaning_policy_context = acp;
|
||||||
acp->cache = cache;
|
acp->cache = cache;
|
||||||
|
|
||||||
env_rwsem_init(&acp->chunks_lock);
|
|
||||||
|
|
||||||
for (i = 0; i < ACP_MAX_BUCKETS; i++) {
|
for (i = 0; i < ACP_MAX_BUCKETS; i++) {
|
||||||
INIT_LIST_HEAD(&acp->bucket_info[i].chunk_list);
|
INIT_LIST_HEAD(&acp->bucket_info[i].chunk_list);
|
||||||
acp->bucket_info[i].threshold =
|
acp->bucket_info[i].threshold =
|
||||||
|
@ -15,22 +15,25 @@ int ocf_metadata_concurrency_init(struct ocf_metadata_lock *metadata_lock)
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
//@TODO handle env_rwlock_init return val
|
|
||||||
env_rwlock_init(&metadata_lock->status);
|
env_rwlock_init(&metadata_lock->status);
|
||||||
env_rwsem_init(&metadata_lock->global);
|
err = env_rwsem_init(&metadata_lock->global);
|
||||||
|
if (err)
|
||||||
|
goto rwsem_err;
|
||||||
|
|
||||||
for (i = 0; i < OCF_IO_CLASS_MAX; i++) {
|
for (i = 0; i < OCF_IO_CLASS_MAX; i++) {
|
||||||
err = env_spinlock_init(&metadata_lock->partition[i]);
|
err = env_spinlock_init(&metadata_lock->partition[i]);
|
||||||
if (err)
|
if (err)
|
||||||
break;
|
goto spinlocks_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (err) {
|
return err;
|
||||||
|
|
||||||
|
spinlocks_err:
|
||||||
while (i--)
|
while (i--)
|
||||||
env_spinlock_destroy(&metadata_lock->partition[i]);
|
env_spinlock_destroy(&metadata_lock->partition[i]);
|
||||||
return err;
|
rwsem_err:
|
||||||
}
|
env_rwlock_destroy(&metadata_lock->status);
|
||||||
|
env_spinlock_destroy(&metadata_lock->eviction);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ int ocf_async_lock_init(struct ocf_async_lock *lock, uint32_t waiter_priv_size)
|
|||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
err = env_spinlock_init(&lock->waiters_lock);
|
err = env_spinlock_init(&lock->waiters_lock);
|
||||||
if (err);
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
INIT_LIST_HEAD(&lock->waiters);
|
INIT_LIST_HEAD(&lock->waiters);
|
||||||
|
Loading…
Reference in New Issue
Block a user