aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/fs/btrfs/compression.c
diff options
context:
space:
mode:
authorChris Mason <clm@fb.com>2015-10-12 16:24:40 -0700
committerChris Mason <clm@fb.com>2015-10-12 16:24:40 -0700
commit6db4a7335dd701a0e20275440ee057d3db2a7ae3 (patch)
treec0734d7411806ef91bfeb615bf528ffb349938fe /fs/btrfs/compression.c
parentMerge branch 'anand/sysfs-updates-v4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.4 (diff)
parentbtrfs: comment the rest of implicit barriers before waitqueue_active (diff)
downloadwireguard-linux-6db4a7335dd701a0e20275440ee057d3db2a7ae3.tar.xz
wireguard-linux-6db4a7335dd701a0e20275440ee057d3db2a7ae3.zip
Merge branch 'fix/waitqueue-barriers' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.4
Diffstat (limited to 'fs/btrfs/compression.c')
-rw-r--r--fs/btrfs/compression.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index 57ee8ca29b06..3a9317ce67f8 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -839,6 +839,9 @@ static void free_workspace(int type, struct list_head *workspace)
btrfs_compress_op[idx]->free_workspace(workspace);
atomic_dec(alloc_workspace);
wake:
+ /*
+ * Make sure counter is updated before we wake up waiters.
+ */
smp_mb();
if (waitqueue_active(workspace_wait))
wake_up(workspace_wait);