Change env_spinlock_init to non-void function

Signed-off-by: Michal Rakowski <michal.rakowski@intel.com>
This commit is contained in:
Michal Rakowski
2019-09-27 14:57:55 +02:00
parent 8426d662cb
commit b78557a2cc
10 changed files with 81 additions and 23 deletions

View File

@@ -110,13 +110,17 @@ int ocf_cache_line_concurrency_init(struct ocf_cache *cache)
/* Init concurrency control table */
for (i = 0; i < _WAITERS_LIST_ENTRIES; i++) {
INIT_LIST_HEAD(&c->waiters_lsts[i].head);
env_spinlock_init(&c->waiters_lsts[i].lock);
error = env_spinlock_init(&c->waiters_lsts[i].lock);
if (error)
goto spinlock_err;
}
return 0;
spinlock_err:
while (i--)
env_spinlock_destroy(&c->waiters_lsts[i].lock);
ocf_cache_line_concurrency_init:
ocf_cache_log(cache, log_err, "Cannot initialize cache concurrency, "
"ERROR %d", error);

View File

@@ -6,17 +6,32 @@
#include "ocf_metadata_concurrency.h"
#include "../metadata/metadata_misc.h"
void ocf_metadata_concurrency_init(struct ocf_metadata_lock *metadata_lock)
int ocf_metadata_concurrency_init(struct ocf_metadata_lock *metadata_lock)
{
int err = 0;
unsigned i;
env_spinlock_init(&metadata_lock->eviction);
err = env_spinlock_init(&metadata_lock->eviction);
if (err)
return err;
//@TODO handle env_rwlock_init return val
env_rwlock_init(&metadata_lock->status);
env_rwsem_init(&metadata_lock->global);
for (i = 0; i < OCF_IO_CLASS_MAX; i++) {
env_spinlock_init(&metadata_lock->partition[i]);
err = env_spinlock_init(&metadata_lock->partition[i]);
if (err)
break;
}
if (err) {
while (i--)
env_spinlock_destroy(&metadata_lock->partition[i]);
return err;
}
return err;
}
void ocf_metadata_concurrency_deinit(struct ocf_metadata_lock *metadata_lock)

View File

@@ -10,7 +10,7 @@
#define OCF_METADATA_RD 0
#define OCF_METADATA_WR 1
void ocf_metadata_concurrency_init(struct ocf_metadata_lock *metadata_lock);
int ocf_metadata_concurrency_init(struct ocf_metadata_lock *metadata_lock);
void ocf_metadata_concurrency_deinit(struct ocf_metadata_lock *metadata_lock);