int __lockfunc _write_trylock(rwlock_t *lock) { preempt_disable(); if (_raw_write_trylock(lock)) return 1; preempt_enable(); return 0; }
int __lockfunc _write_trylock(rwlock_t *lock) { preempt_disable(); if (_raw_write_trylock(lock)) { rwlock_acquire(&lock->dep_map, 0, 1, _RET_IP_); return 1; } preempt_enable(); return 0; }
static inline void __preempt_write_lock(rwlock_t *lock) { if (preempt_count() > 1) { _raw_write_lock(lock); return; } do { preempt_enable(); while (rwlock_is_locked(lock)) cpu_relax(); preempt_disable(); } while (!_raw_write_trylock(lock)); }
int _write_trylock(rwlock_t *lock) { check_lock(&lock->debug); return _raw_write_trylock(&lock->raw); }
void __lockfunc _write_lock(rwlock_t *lock) { preempt_disable(); if (unlikely(!_raw_write_trylock(lock))) __preempt_write_lock(lock); }