Lines Matching refs:lock

93 	lockdep_set_class_and_name(&eb->lock, &ks->keys[level], ks->names[level]);  in btrfs_set_buffer_lockdep_class()
145 down_read_nested(&eb->lock, nest); in btrfs_tree_read_lock_nested()
156 if (down_read_trylock(&eb->lock)) { in btrfs_try_tree_read_lock()
169 up_read(&eb->lock); in btrfs_tree_read_unlock()
181 __acquires(&eb->lock) in btrfs_tree_lock_nested()
188 down_write_nested(&eb->lock, nest); in btrfs_tree_lock_nested()
200 up_write(&eb->lock); in btrfs_tree_unlock()
314 void btrfs_drew_lock_init(struct btrfs_drew_lock *lock) in btrfs_drew_lock_init() argument
316 atomic_set(&lock->readers, 0); in btrfs_drew_lock_init()
317 atomic_set(&lock->writers, 0); in btrfs_drew_lock_init()
318 init_waitqueue_head(&lock->pending_readers); in btrfs_drew_lock_init()
319 init_waitqueue_head(&lock->pending_writers); in btrfs_drew_lock_init()
323 bool btrfs_drew_try_write_lock(struct btrfs_drew_lock *lock) in btrfs_drew_try_write_lock() argument
325 if (atomic_read(&lock->readers)) in btrfs_drew_try_write_lock()
328 atomic_inc(&lock->writers); in btrfs_drew_try_write_lock()
332 if (atomic_read(&lock->readers)) { in btrfs_drew_try_write_lock()
333 btrfs_drew_write_unlock(lock); in btrfs_drew_try_write_lock()
340 void btrfs_drew_write_lock(struct btrfs_drew_lock *lock) in btrfs_drew_write_lock() argument
343 if (btrfs_drew_try_write_lock(lock)) in btrfs_drew_write_lock()
345 wait_event(lock->pending_writers, !atomic_read(&lock->readers)); in btrfs_drew_write_lock()
349 void btrfs_drew_write_unlock(struct btrfs_drew_lock *lock) in btrfs_drew_write_unlock() argument
355 if (atomic_dec_and_test(&lock->writers)) in btrfs_drew_write_unlock()
356 wake_up(&lock->pending_readers); in btrfs_drew_write_unlock()
359 void btrfs_drew_read_lock(struct btrfs_drew_lock *lock) in btrfs_drew_read_lock() argument
361 atomic_inc(&lock->readers); in btrfs_drew_read_lock()
371 wait_event(lock->pending_readers, atomic_read(&lock->writers) == 0); in btrfs_drew_read_lock()
374 void btrfs_drew_read_unlock(struct btrfs_drew_lock *lock) in btrfs_drew_read_unlock() argument
380 if (atomic_dec_and_test(&lock->readers)) in btrfs_drew_read_unlock()
381 wake_up(&lock->pending_writers); in btrfs_drew_read_unlock()