summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/locking.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2019-08-06 21:44:57 -0400
committerDavid S. Miller <davem@davemloft.net>2019-08-06 21:44:57 -0400
commit13dfb3fa494361ea9a5950f27c9cd8b06d28c04f (patch)
tree1bf30874f57c6c6b21160a10282191fcd0868055 /fs/btrfs/locking.c
parent05bb520376af2c5146d3c44832c22ec3bb54d778 (diff)
parent33920f1ec5bf47c5c0a1d2113989bdd9dfb3fae9 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Just minor overlapping changes in the conflicts here. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'fs/btrfs/locking.c')
-rw-r--r--fs/btrfs/locking.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/btrfs/locking.c b/fs/btrfs/locking.c
index 98fccce4208c..393eceda57c8 100644
--- a/fs/btrfs/locking.c
+++ b/fs/btrfs/locking.c
@@ -346,9 +346,12 @@ void btrfs_tree_unlock(struct extent_buffer *eb)
346 if (blockers) { 346 if (blockers) {
347 btrfs_assert_no_spinning_writers(eb); 347 btrfs_assert_no_spinning_writers(eb);
348 eb->blocking_writers--; 348 eb->blocking_writers--;
349 /* Use the lighter barrier after atomic */ 349 /*
350 smp_mb__after_atomic(); 350 * We need to order modifying blocking_writers above with
351 cond_wake_up_nomb(&eb->write_lock_wq); 351 * actually waking up the sleepers to ensure they see the
352 * updated value of blocking_writers
353 */
354 cond_wake_up(&eb->write_lock_wq);
352 } else { 355 } else {
353 btrfs_assert_spinning_writers_put(eb); 356 btrfs_assert_spinning_writers_put(eb);
354 write_unlock(&eb->lock); 357 write_unlock(&eb->lock);