dax: Avoid losing wakeup in dax_lock_mapping_entry
After calling get_unlocked_entry(), you have to call
put_unlocked_entry() to avoid subsequent waiters losing wakeups.
Fixes: c2a7d2a115
("filesystem-dax: Introduce dax_lock_mapping_entry()")
Cc: stable@vger.kernel.org
Signed-off-by: Matthew Wilcox <willy@infradead.org>
This commit is contained in:
parent
0e40de0338
commit
25bbe21bf4
1
fs/dax.c
1
fs/dax.c
|
@ -391,6 +391,7 @@ bool dax_lock_mapping_entry(struct page *page)
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
entry = get_unlocked_entry(&xas);
|
entry = get_unlocked_entry(&xas);
|
||||||
xas_unlock_irq(&xas);
|
xas_unlock_irq(&xas);
|
||||||
|
put_unlocked_entry(&xas, entry);
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue