From: Jeff Mahoney Date: Mon, 15 Jun 2015 13:41:19 +0000 (-0400) Subject: btrfs: add missing discards when unpinning extents with -o discard X-Git-Tag: omap-for-v4.3/fixes-rc1~86^2~7^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e33e17ee1098d8d751552ac11c111e1c1a3db014;p=pandora-kernel.git btrfs: add missing discards when unpinning extents with -o discard When we clear the dirty bits in btrfs_delete_unused_bgs for extents in the empty block group, it results in btrfs_finish_extent_commit being unable to discard the freed extents. The block group removal patch added an alternate path to forget extents other than btrfs_finish_extent_commit. As a result, any extents that would be freed when the block group is removed aren't discarded. In my test run, with a large copy of mixed sized files followed by removal, it left nearly 2/3 of extents undiscarded. To clean up the block groups, we add the removed block group onto a list that will be discarded after transaction commit. Signed-off-by: Jeff Mahoney Reviewed-by: Filipe Manana Tested-by: Filipe Manana Signed-off-by: Chris Mason --- Reading git-diff-tree failed