aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2019-03-15 11:46:55 -0400
committerDavid Sterba <dsterba@suse.com>2019-04-29 13:02:25 -0400
commitd33d105b85d6099e2499c536fb6fbb2dc65ea644 (patch)
tree064260fa5dc628d5de286da27d2833754d3c0dfb
parentd46a05edac440168a31805e583c8ab3f9c9561f9 (diff)
btrfs: tests: don't leak fs_info in extent_io bitmap tests
The fs_info is not freed at the end of the function and leaks. The function is called twice so there can be up to 2x sizeof(struct btrfs_fs_info) of leaked memory. Fortunatelly this affects only testing builds, the size could be 16k with several debugging features enabled. Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--fs/btrfs/tests/extent-io-tests.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/fs/btrfs/tests/extent-io-tests.c b/fs/btrfs/tests/extent-io-tests.c
index 74f69df7a7e1..24003e97e797 100644
--- a/fs/btrfs/tests/extent-io-tests.c
+++ b/fs/btrfs/tests/extent-io-tests.c
@@ -378,8 +378,8 @@ static int test_eb_bitmaps(u32 sectorsize, u32 nodesize)
378{ 378{
379 struct btrfs_fs_info *fs_info; 379 struct btrfs_fs_info *fs_info;
380 unsigned long len; 380 unsigned long len;
381 unsigned long *bitmap; 381 unsigned long *bitmap = NULL;
382 struct extent_buffer *eb; 382 struct extent_buffer *eb = NULL;
383 int ret; 383 int ret;
384 384
385 test_msg("running extent buffer bitmap tests"); 385 test_msg("running extent buffer bitmap tests");
@@ -400,14 +400,15 @@ static int test_eb_bitmaps(u32 sectorsize, u32 nodesize)
400 bitmap = kmalloc(len, GFP_KERNEL); 400 bitmap = kmalloc(len, GFP_KERNEL);
401 if (!bitmap) { 401 if (!bitmap) {
402 test_err("couldn't allocate test bitmap"); 402 test_err("couldn't allocate test bitmap");
403 return -ENOMEM; 403 ret = -ENOMEM;
404 goto out;
404 } 405 }
405 406
406 eb = __alloc_dummy_extent_buffer(fs_info, 0, len); 407 eb = __alloc_dummy_extent_buffer(fs_info, 0, len);
407 if (!eb) { 408 if (!eb) {
408 test_err("couldn't allocate test extent buffer"); 409 test_err("couldn't allocate test extent buffer");
409 kfree(bitmap); 410 ret = -ENOMEM;
410 return -ENOMEM; 411 goto out;
411 } 412 }
412 413
413 ret = __test_eb_bitmaps(bitmap, eb, len); 414 ret = __test_eb_bitmaps(bitmap, eb, len);
@@ -419,14 +420,15 @@ static int test_eb_bitmaps(u32 sectorsize, u32 nodesize)
419 eb = __alloc_dummy_extent_buffer(NULL, nodesize / 2, len); 420 eb = __alloc_dummy_extent_buffer(NULL, nodesize / 2, len);
420 if (!eb) { 421 if (!eb) {
421 test_err("couldn't allocate test extent buffer"); 422 test_err("couldn't allocate test extent buffer");
422 kfree(bitmap); 423 ret = -ENOMEM;
423 return -ENOMEM; 424 goto out;
424 } 425 }
425 426
426 ret = __test_eb_bitmaps(bitmap, eb, len); 427 ret = __test_eb_bitmaps(bitmap, eb, len);
427out: 428out:
428 free_extent_buffer(eb); 429 free_extent_buffer(eb);
429 kfree(bitmap); 430 kfree(bitmap);
431 btrfs_free_dummy_fs_info(fs_info);
430 return ret; 432 return ret;
431} 433}
432 434