diff --git a/src/metadata/metadata_io.c b/src/metadata/metadata_io.c index 8cc7206..9820969 100644 --- a/src/metadata/metadata_io.c +++ b/src/metadata/metadata_io.c @@ -321,7 +321,7 @@ static void metadata_io_req_submit(struct metadata_io_request *m_req) lock = ocf_mio_async_lock(a_req->mio_conc, m_req, matadata_io_page_lock_acquired); - if (lock != OCF_LOCK_ACQUIRED) { + if (lock < 0) { a_req->error = lock; metadata_io_req_finalize(m_req); return; diff --git a/src/utils/utils_alock.c b/src/utils/utils_alock.c index 9d43beb..217ee85 100644 --- a/src/utils/utils_alock.c +++ b/src/utils/utils_alock.c @@ -719,6 +719,7 @@ int ocf_alock_lock_rd(struct ocf_alock *alock, } else { env_atomic_set(&req->lock_remaining, 0); env_atomic_dec(&alock->waiting); + lock = status; } env_mutex_unlock(&alock->lock); } @@ -754,6 +755,7 @@ int ocf_alock_lock_wr(struct ocf_alock *alock, } else { env_atomic_set(&req->lock_remaining, 0); env_atomic_dec(&alock->waiting); + lock = status; } env_mutex_unlock(&alock->lock); }