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

@@ -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)