diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index c29c8ef9bd6aa481afb34aa52c928f52633eef87..3f9b7507543ad4b0cd7cb7e6e4e16bc1dacf6f22 100644
--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -857,6 +857,7 @@ static int __load_free_space_cache(struct btrfs_root *root, struct inode *inode,
 				spin_unlock(&ctl->tree_lock);
 				btrfs_err(fs_info,
 					"Duplicate entries in free space cache, dumping");
+				kmem_cache_free(btrfs_free_space_bitmap_cachep, e->bitmap);
 				kmem_cache_free(btrfs_free_space_cachep, e);
 				goto free_cache;
 			}