struct ldlm_cb_async_args *ca = data;
struct ldlm_lock *lock = ca->ca_lock;
struct ldlm_cb_set_arg *arg = ca->ca_set_arg;
- int count;
ENTRY;
LASSERT(lock != NULL);
}
LDLM_LOCK_RELEASE(lock);
- count = cfs_atomic_dec_return(&arg->rpcs);
- if (count < arg->threshold)
+ if (cfs_atomic_dec_return(&arg->rpcs) < arg->threshold)
cfs_waitq_signal(&arg->waitq);
- if (count == 0)
- ldlm_csa_put(arg);
+
+ ldlm_csa_put(arg);
RETURN(0);
}
cfs_atomic_inc(&arg->restart);
} else {
LDLM_LOCK_GET(lock);
- if (cfs_atomic_inc_return(&arg->rpcs) == 1)
- cfs_atomic_inc(&arg->refcount);
+ cfs_atomic_inc(&arg->rpcs);
+ cfs_atomic_inc(&arg->refcount);
ptlrpcd_add_req(req, PDL_POLICY_ROUND, -1);
}