diff options
author | Filipe Manana <fdmanana@suse.com> | 2015-05-14 20:41:07 +0100 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2015-06-03 04:02:56 -0700 |
commit | 0f31871f4411b5c0d42fb4403dec83a21a96100b (patch) | |
tree | ed012f7057b95cd5b6dcea79ad99b49b14aad6b4 /Kbuild | |
parent | c152b63efc94d5fd486a39e9df5e61ae77e08e44 (diff) | |
download | linux-0f31871f4411b5c0d42fb4403dec83a21a96100b.tar.bz2 |
Btrfs: wake up extent state waiters on unlock through clear_extent_bits
When we clear an extent state's EXTENT_LOCKED bit with clear_extent_bits()
through free_io_failure(), we weren't waking up any tasks waiting for the
extent's state EXTENT_LOCKED bit, leading to an hang.
So make sure clear_extent_bits() ends up waking up any waiters if the
bit EXTENT_LOCKED is supplied by its callers.
Zygo Blaxell was experiencing such hangs at inode eviction time after
file unlinks. Thanks to him for a set of scripts to reproduce the issue.
Reported-by: Zygo Blaxell <ce3g8jdj@umail.furryterror.org>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'Kbuild')
0 files changed, 0 insertions, 0 deletions