|
@@ -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);
|