Example #1
0
int __lockfunc _write_trylock(rwlock_t *lock)
{
	preempt_disable();
	if (_raw_write_trylock(lock))
		return 1;

	preempt_enable();
	return 0;
}
Example #2
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;
}
Example #3
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));
}
Example #4
0
int _write_trylock(rwlock_t *lock)
{
    check_lock(&lock->debug);
    return _raw_write_trylock(&lock->raw);
}
Example #5
0
void __lockfunc _write_lock(rwlock_t *lock)
{
	preempt_disable();
	if (unlikely(!_raw_write_trylock(lock)))
		__preempt_write_lock(lock);
}