Here is v3 of the fitrim patches. Change since v2 [0]: * Replaced BUG_ON with WARN_ON in patch 2 * Added RB to patches 04/05/06/09 * Squashed "btrfs: Transpose btrfs_close_devices/btrfs_mapping_tree_free in close_ctree" into patch 07. It was only sent to the mailing list as a followup. * Rebased all patches on latest misc-next. This has undergone multiple xfstest runs and I think is ready to be merged. [0] https://lore.kernel.org/linux-btrfs/20190211083510.27591-1-nborisov@xxxxxxxx/ Jeff Mahoney (1): btrfs: replace pending/pinned chunks lists with io tree Nikolay Borisov (11): btrfs: Honour FITRIM range constraints during free space trim btrfs: combine device update operations during transaction commit btrfs: Handle pending/pinned chunks before blockgroup relocation during device shrink btrfs: Rename and export clear_btree_io_tree btrfs: Populate ->orig_block_len during read_one_chunk btrfs: Introduce new bits for device allocation tree btrfs: Remove 'trans' argument from find_free_dev_extent(_start) btrfs: Factor out in_range macro btrfs: Optimize unallocated chunks discard btrfs: Implement find_first_clear_extent_bit btrfs: Switch btrfs_trim_free_extents to find_first_clear_extent_bit fs/btrfs/ctree.h | 8 +- fs/btrfs/dev-replace.c | 2 +- fs/btrfs/disk-io.c | 20 ++- fs/btrfs/extent-tree.c | 102 +++++-------- fs/btrfs/extent_io.c | 103 +++++++++++++- fs/btrfs/extent_io.h | 19 ++- fs/btrfs/extent_map.c | 38 +++++ fs/btrfs/extent_map.h | 1 - fs/btrfs/free-space-cache.c | 4 - fs/btrfs/transaction.c | 51 +------ fs/btrfs/transaction.h | 2 +- fs/btrfs/volumes.c | 277 ++++++++++++++---------------------- fs/btrfs/volumes.h | 23 ++- 13 files changed, 332 insertions(+), 318 deletions(-) -- 2.17.1
