On 2017年09月10日 19:19, Christophe JAILLET wrote:
If 'btrfs_alloc_path()' fails, we must free the resourses already
allocated, as done in the other error handling paths in this function.

Signed-off-by: Christophe JAILLET <christophe.jail...@wanadoo.fr>

Reviewed-by: Qu Wenruo <quwenruo.bt...@gmx.com>

BTW, I also checked all btrfs_alloc_path() in self tests, not such leak remaining.

Thanks,
Qu
---
  fs/btrfs/tests/free-space-tree-tests.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/btrfs/tests/free-space-tree-tests.c 
b/fs/btrfs/tests/free-space-tree-tests.c
index 1458bb0ea124..8444a018cca2 100644
--- a/fs/btrfs/tests/free-space-tree-tests.c
+++ b/fs/btrfs/tests/free-space-tree-tests.c
@@ -500,7 +500,8 @@ static int run_test(test_func_t test_func, int bitmaps, u32 
sectorsize,
        path = btrfs_alloc_path();
        if (!path) {
                test_msg("Couldn't allocate path\n");
-               return -ENOMEM;
+               ret = -ENOMEM;
+               goto out;
        }
ret = add_block_group_free_space(&trans, root->fs_info, cache);

Reply via email to