Another day, another revision, hopefully this is the last one. Changes since v2:
* Reworked patch 1 and made async_cow be the top-level context struct and each chunk is tracked by async_chunk. This cleansup the pointer gymnastics I was doing in the previous version (Johannes) * Reworded changelogs in various patches to reflect the usage of async_chunk. * Fixed changelog in patch2 to properly reflect fs_info is referenced from btrfs_work (Johannes) * Added Reviwed-by to patches 4/5/6 Changes since v1: * Fixed error handling in patch 1 - now properly cleanup on failure. * Fixed subject of patch 3 * Added patches 4/5 as minor cleanups to the code. Nikolay Borisov (6): btrfs: Refactor cow_file_range_async btrfs: Remove fs_info from struct async_chunk btrfs: Make compress_file_range take only struct async_chunk btrfs: Replace clear_extent_bit with unlock_extent btrfs: Set iotree only once in submit_compressed_extents btrfs: Factor out common extent locking code in submit_compressed_extents fs/btrfs/inode.c | 148 +++++++++++++++++++++++++++-------------------- 1 file changed, 84 insertions(+), 64 deletions(-) -- 2.17.1