diff options
Diffstat (limited to 'fs/btrfs/locking.c')
| -rw-r--r-- | fs/btrfs/locking.c | 5 | 
1 files changed, 2 insertions, 3 deletions
| diff --git a/fs/btrfs/locking.c b/fs/btrfs/locking.c index 2a1762c66041..e95df435d897 100644 --- a/fs/btrfs/locking.c +++ b/fs/btrfs/locking.c @@ -113,11 +113,10 @@ again:  		read_unlock(&eb->lock);  		return;  	} -	read_unlock(&eb->lock); -	wait_event(eb->write_lock_wq, atomic_read(&eb->blocking_writers) == 0); -	read_lock(&eb->lock);  	if (atomic_read(&eb->blocking_writers)) {  		read_unlock(&eb->lock); +		wait_event(eb->write_lock_wq, +			   atomic_read(&eb->blocking_writers) == 0);  		goto again;  	}  	atomic_inc(&eb->read_locks); | 
