diff options
| author | 2015-10-12 16:24:40 -0700 | |
|---|---|---|
| committer | 2015-10-12 16:24:40 -0700 | |
| commit | 6db4a7335dd701a0e20275440ee057d3db2a7ae3 (patch) | |
| tree | c0734d7411806ef91bfeb615bf528ffb349938fe /fs/btrfs/compression.c | |
| parent | Merge 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) | |
| parent | btrfs: comment the rest of implicit barriers before waitqueue_active (diff) | |
| download | wireguard-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.c | 3 |
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); |
