bcache: Fix, improve efficiency of closure_sync()
authorKent Overstreet <kent.overstreet@gmail.com>
Mon, 8 Jan 2018 20:21:25 +0000 (12:21 -0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 8 Jan 2018 20:29:00 +0000 (13:29 -0700)
commite4bf791937d82afca79e1df4063f72dbc6960ac7
tree5c131edb13307bce302ba252a2624cca71176ba7
parentb1092c9af9ed88dd2fc8345d987dfb7efe7be8f0
bcache: Fix, improve efficiency of closure_sync()

Eliminates cases where sync can race and fail to complete / get stuck.
Removes many status flags and simplifies entering-and-exiting closure
sleeping behaviors.

[mlyle: fixed conflicts due to changed return behavior in mainline.
extended commit comment, and squashed down two commits that were mostly
contradictory to get to this state.  Changed __set_current_state to
set_current_state per Jens review comment]

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Michael Lyle <mlyle@lyle.org>
Reviewed-by: Michael Lyle <mlyle@lyle.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/bcache/closure.c
drivers/md/bcache/closure.h