btrfs: ensure removal of discardable_* in free_bitmap()
authorDennis Zhou <dennis@kernel.org>
Thu, 2 Jan 2020 21:26:45 +0000 (16:26 -0500)
committerDavid Sterba <dsterba@suse.com>
Mon, 20 Jan 2020 15:41:01 +0000 (16:41 +0100)
commit27f0afc7376bf6e1405ee3a0ef0ab85171059ae8
treeba463d971d6924219069694774648100583fe3f6
parentf9bb615af2ba8724bff82376275a14b02eef5eb2
btrfs: ensure removal of discardable_* in free_bitmap()

Most callers of free_bitmap() only call it if bitmap_info->bytes is 0.
However, there are certain cases where we may free the free space cache
via __btrfs_remove_free_space_cache(). This exposes a path where
free_bitmap() is called regardless. This may result in a bad accounting
situation for discardable_bytes and discardable_extents. So, remove the
stats and call btrfs_discard_update_discardable().

Signed-off-by: Dennis Zhou <dennis@kernel.org>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/free-space-cache.c