WRITE_LOCK
DTRACE_PROBE2(plockstat, rw__acquire, rwlp, WRITE_LOCK);
DTRACE_PROBE3(plockstat, rw__error, rwlp, WRITE_LOCK,
rd_wr = WRITE_LOCK;
if (rd_wr == WRITE_LOCK) {
if (rd_wr == WRITE_LOCK && write_unlock_try(rwlp)) {
#define WRITE_LOCK_TRY (WRITE_LOCK | TRY_FLAG)
ASSERT(rd_wr == READ_LOCK || rd_wr == WRITE_LOCK);
ASSERT(rd_wr == READ_LOCK || rd_wr == WRITE_LOCK);
(rd_wr == WRITE_LOCK &&
if (rd_wr == WRITE_LOCK) {
if (rd_wr == WRITE_LOCK &&
error = shared_rwlock_lock(rwlp, tsp, WRITE_LOCK);
error = rwlock_lock(rwlp, tsp, WRITE_LOCK);
DTRACE_PROBE2(plockstat, rw__acquire, rwlp, WRITE_LOCK);
DTRACE_PROBE3(plockstat, rw__error, rwlp, WRITE_LOCK, error);
if (lock_container(WRITE_LOCK, container) != FRU_SUCCESS) {
if (lock_container(WRITE_LOCK, container) != FRU_SUCCESS) {
if (lock_container(WRITE_LOCK, container) != FRU_SUCCESS) {
case WRITE_LOCK:
if (lock_container(WRITE_LOCK, container) != FRU_SUCCESS) {
if (lock_container(WRITE_LOCK, container) != FRU_SUCCESS) {
#define WRITE_LOCK_TRY (WRITE_LOCK | TRY_FLAG)
if ((rd_wr != READ_LOCK) && (rd_wr != WRITE_LOCK)) {
if (rd_wr == WRITE_LOCK)
return (lwp_rwlock_lock(rwlp, tsp, WRITE_LOCK));